我想在SQL管理工作室中使用T-SQL查询而不是C#代码从数据库(“数据库模式”)中提取XML模式。架构应包括数据库中的所有表。
我可以使用以下内容获得单个表:
DECLARE @schema xml
SET @schema = (SELECT * FROM Student FOR XML AUTO, ELEMENTS, XMLSCHEMA('StudentSchema'))
select @schema
但是如何合并其余的表?我的所有表都以某种方式相关。
另请参阅this question,其中讨论了如何在代码中执行此操作。
答案 0 :(得分:4)
你总是可以使用sp_msforeachtable
和动态sql:
exec sp_MSforeachtable '
DECLARE @schema xml
SET @schema = (SELECT * FROM ? FOR XML AUTO, ELEMENTS, XMLSCHEMA(''?Schema''))
select @schema
'
您可能对架构名称存在命名问题,因为我认为您将为表名提供dbo.
或架构前缀。
答案 1 :(得分:1)
你的意思是Information Schema Views (Transact-SQL)
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
FOR XML AUTO