0
我发现这个tsql查询显示表的xml模式,它工作得很好。如何显示从tsql查询派生的xml架构中的表关系?
SELECT * FROM TableA
FOR XML AUTO, XMLSCHEMA
我现在试图通过这个查询来显示表之间的关系。我不确定这是否可能。我嘲笑了几张测试桌,而且我没有任何运气。基本上,我创建tableA和tableB之间的一对多关系,然后在xml模式中将tableA显示为父级,而tableB将是架构内的子级。
这就是我一直在运行的东西。 :
SELECT * FROM TableA,
dbo.TableB
FOR XML AUTO, XMLSCHEMA
这是我从上面的查询得到的示例xml模式文件。
<xsd:schema targetNamespace="urn:schemas-microsoft-com:sql:SqlRowSet7" xmlns:schema="urn:schemas-microsoft-com:sql:SqlRowSet7" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" elementFormDefault="qualified">
<xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
<xsd:element name="TableA">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="columnA" type="sqltypes:int" />
<xsd:element name="columnB">
<xsd:simpleType>
<xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="BinarySort">
<xsd:maxLength value="50" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element ref="schema:dbo.tylersTestTable2" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="TableB">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="columnA" type="sqltypes:int" />
<xsd:element name="columnB">
<xsd:simpleType>
<xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="BinarySort">
<xsd:maxLength value="50" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="fkToTableA" type="sqltypes:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
正如您所看到的,它正在模式中显示相同的级别表,并且不显示父级子关系。 因为我不是dba,所以我有点不知所措,但是我必须为大量表格做这件事,而且我不想亲手写这些。
对此有何意见?
好吧,这是有道理的,我会检查出ERWin。 –