Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Megadhatod az xml Data Type Method-okat egy xml adattípus változó vagy oszlop ellen. Például a query() metódus (xml Data Type) végrehajtja a megadott XQuery-t egy XML példányon. Ha így építesz XML-t, érdemes lehet egy nem-XML típusú oszlopból vagy egy Transact-SQL változóból származó értéket behozni. Ezt a folyamatot XML-en belüli relációs adat kötésének nevezik.
Az XML-en belüli nem-XML relációs adatok kötéséhez az SQL Server Database Engine a következő pszeudo-függvényeket biztosítja:
sql:column() Funkció (XQuery) Lehetővé teszi, hogy egy relációs oszlop értékeit felhasználd az XQuery vagy XML DML kifejezésben.
sql:változó() függvény (XQuery) . Lehetővé teszi, hogy az SQL változó értékét felhasználd az XQuery vagy XML DML kifejezésben.
Ezeket a függvényeket xml adattípus-metódusokkal is használhatod, amikor relációs értéket szeretnél megjeleníteni XML-en belül.
Ezeket a függvényeket nem használhatod arra, hogy az xml, CLR felhasználó által definiált típusok, datetime, smalldatetime, szöveg, ntext, sql_variant és kép típusok oszlopokban vagy változókban adatokat referáljanak.
Ez a kötés csak olvasásra vonatkozik. Vagyis nem lehet adatokat írni oszlopokba, amelyek ezeket a funkciókat használják. Például a sql:variable("@x")="some expression" nem engedélyezett.
Példa: Területek közötti lekérdezés sql:variable() használatával
Ez a példa bemutatja, hogyan teheti a sql:variable() egy alkalmazás számára a lekérdezés paraméterezését. Az ISBN-t egy SQL változóval @isbntovábbítják. Ha a konstanst sql:variable() betűre cseréljük, a lekérdezés bármely ISBN-re kereshető, nem csak arra, amelynek ISBN-je 0-7356-1588-2.
DECLARE @isbn VARCHAR(20)
SET @isbn = '0-7356-1588-2'
SELECT xCol
FROM T
WHERE xCol.exist ('/book/@ISBN[. = sql:variable("@isbn")]') = 1
A sql:column() hasonló módon használható, és további előnyöket biztosít. Az oszlop feletti indexek a hatékonyság érdekében használhatók, ahogy azt a költségalapú lekérdezésoptimalizáló dönti el. Emellett a kiszámított oszlop tárolhat egy előrejutott tulajdonságot.