Udostępnij za pośrednictwem


Binding Relational Data Inside XML Data

Można określić xml Data Type Methods przed xml Typ danych zmiennej lub kolumna. Na przykład query() Method (xml Data Type) wykonuje określone XQuery przed wystąpienie XML. W ten sposób można skonstruować XML, można przywrócić wartości z kolumna XML inny niż typ lub zmiennej języka Transact-SQL.Ten proces jest określany jako wiązania danych relacyjnych wewnątrz XML.

Powiązanie danych relacyjnych XML inny niż wewnątrz XML, aparat bazy danych programu SQL Server zapewnia następujące pseudo-functions:

Można użyć tych funkcji z xml Typ danych metod, za każdym razem, gdy chcesz udostępnić relacyjnej wartość wewnątrz XML.

Funkcje te nie można używać do odwołania danych w kolumnach lub zmienne xmlTypy zdefiniowane przez użytkownika CLR, datetime, smalldatetime, text, ntext, sql_variant, a image typy.

To wiązanie jest także do celów tylko do odczytu.Oznacza to nie można zapisywać dane w kolumnach, które korzystania z tych funkcji.Na przykład sql:variable("@x") = "niektóre wyrażenie „ nie jest dozwolone.

Przykład: Za pomocą sql:variable() Query poza granice domena

W tym przykładzie pokazano, w jaki sposób SQL:variable() można włączyć aplikacji parameterize kwerendy.ISBN jest przekazywana przy użyciu SQL zmiennej @ isbn.Zastępując stała z SQL:variable(), kwerenda może służyć do wyszukiwania dowolnego ISBN i nie tylko ten, którego ISBN się 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

SQL:kolumna() mogą być używane w podobny sposób, jak i zapewnia dodatkowe korzyści.Indeksy kolumna można użyć w celu zwiększenia wydajności, zgodnie z decyzją optymalizator kwerendy na koszty.Ponadto kolumna obliczana może przechowywać promowanych właściwość.