SQL表转换为xml

本文关键字:xml 转换 SQL | 更新日期: 2023-09-27 18:02:19

我在sql数据库中有几个表,其中一个包含其他人的名字,但不是全部。我需要将表名(来自那个特殊的表名)加载为列表(xdocument),并使用foreach和一个简单的查询将所有表名转换为一个xml文件。数据库和应用程序在同一个azure帐户上。

我没有这样的桌子

    CREATE TABLE [dbo].[table_name]
   (
        [P_ID]  INT            NOT NULL,
        [name] NVARCHAR (255) NOT NULL,
        PRIMARY KEY CLUSTERED ([P_ID] ASC)
    );

和一个只包含

的varchar
table_name1
table_name2
table_name4

我使用那个简单的查询

    SELECT
    P_ID "Table_name2/@id",
    nazwa "Table_name2"
FROM Table_name2
FOR XML PATH('');

和get结果,但只针对一个表

的东西但我想要的结果在一个XML使用"file_converting_tables_to_xml.cs"在我的应用程序

<spinery>   
 <spiner title="Table_name1">
  <wart id="1">black</wart>
</spiner>
 <spiner title="Table_name3">
  <wart id="1">white</wart>
</spiner>

或类似的

我所发现的一切都不适合我,

所以请帮忙

SQL表转换为xml

如果这是SQL Server,你可以试试这个:

——创建两个表

CREATE TABLE [dbo].Table_name1
(
    [P_ID]  INT            NOT NULL,
    [name] NVARCHAR (255) NOT NULL,
    PRIMARY KEY CLUSTERED ([P_ID] ASC)
);
CREATE TABLE [dbo].Table_name2
(
    [P_ID]  INT            NOT NULL,
    [name] NVARCHAR (255) NOT NULL,
    PRIMARY KEY CLUSTERED ([P_ID] ASC)
);
GO

——用你的样本数据填充

INSERT INTO dbo.Table_name1 VALUES(1,'black');
INSERT INTO dbo.Table_name2 VALUES(1,'white');
GO

——使用UNION ALL来组合结果和FOR XML PATH来创建合适的命名

SELECT 'Table_name1' AS [@title]
      ,P_ID [wart/@id]
      ,name [wart]
FROM Table_name1
UNION ALL
SELECT 'Table_name2' AS [@title]
      ,P_ID [wart/@id]
      ,name [wart]
FROM Table_name2
FOR XML PATH('spiner'),ROOT('spinery');

——清理(如果是真实数据要小心!)

GO
--DROP TABLE dbo.Table_name1;
--DROP TABLE dbo.Table_name2;