我在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('');
并获得结果,但仅适用于一个表
东西 但我希望在一个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>
或类似的东西
我发现的一切都不适合我,
所以请帮忙
答案 0 :(得分:0)
如果这是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;