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。 –