DLA klauzuli (Transact-SQL)
DLA klauzula pozwala określić opcję PRZEGLĄDAJ lub XML.PRZEGLĄDAJ i XML są opcje niepowiązanych.
Ważne: |
---|
Dyrektywa XMLDATA XML dla opcji jest niezalecane.W przypadek trybów surowców i AUTOMATYCZNIE za pomocą generowanie pliku XSD.Tryb JAWNE jest nie zastępuje dyrektywę XMLDATA.Ta funkcja zostanie usunięta z przyszłej wersji programu Microsoft SQL Server. Należy unikać stosowania tej funkcji w nowych projektach oraz zaplanować modyfikację aplikacji, w których obecnie jest używana ta funkcja. |
Składnia
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ( 'ElementName' ) ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ( 'TargetNameSpaceURI' ) ] } ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ( 'ElementName' ) ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ( 'RootName' ) ] ]
Argumenty
PRZEGLĄDAJ
Określa, że aktualizacje się podczas przeglądania danych w DB-biblioteki tryb przeglądania kursor.tabela może być przeglądany w aplikacji, jeśli tabela zawiera timestampkolumna, tabela ma indeks unikatowyi jest opcja PRZEGLĄDAJ, aby na końcu instrukcji SELECT, wysłane do wystąpienie SQL Server.Ostrzeżenie
Nie można używać <lock_hint> HOLDLOCK w SELECT instrukcja , która zawiera opcję PRZEGLĄDAJ, aby.
DO PRZEGLĄDANIA nie pojawiają się w instrukcji SELECT, które są połączone przez operatorUNION.
Ostrzeżenie
Gdy kolumnyklucz indeks unikatowy tabela są nullable i tabela znajduje się na wewnętrznej stronie łączyćzewnętrznego, indeks nie jest obsługiwany przez tryb przeglądania.
tryb przeglądania pozwala na skanowanie wierszy w sieci SQL Servertabela i aktualizacji danych w tabela jeden wiersz w czas. Dostęp SQL Server tabela w aplikacji w tryb przeglądania, należy użyć jednej z poniższych opcji:
SELECT instrukcja , która umożliwia dostęp do danych z programu SQL Server tabela musi kończyć się słowa kluczowe FOR BROWSE.Po włączeniu FOR BROWSE opcji tryb przeglądania, tabele tymczasowe są tworzone.
Należy uruchomić następujące Transact-SQLwłączyć tryb przeglądania za pomocąinstrukcja NO_BROWSETABLE opcji:
SET NO_BROWSETABLE ON
Po włączeniu NO_BROWSETABLE opcji wszystkie instrukcje SELECT zachowują się tak, jakby FOR BROWSE opcji jest dołączany do sprawozdania.Jednakże NO_BROWSETABLE opcji nie powoduje utworzenia tabel tymczasowych, FOR BROWSE opcji zazwyczaj używane do wysyłania wyniki do aplikacji.
Podczas próby uzyskania dostępu do danych z SQL Server tabel w tryb przeglądania za pomocą kwerendy WYBIERAJĄCEJ, które obejmuje łączyćzewnętrznegoinstrukcjaoraz zdefiniowane indeks unikatowy na tabela , który znajduje się na wewnętrznej stronie łączyćzewnętrznegoinstrukcja tryb przeglądania nie obsługuje indeks unikatowy. tryb przeglądania obsługuje indeks unikatowy tylko wtedy, gdy wszystkie kolumnyklucz indeks unikatowymożna wprowadzać wartości null . tryb przeglądania nie obsługuje indeks unikatowy , jeśli są spełnione następujące warunki:
Spróbuj uzyskać dostęp do danych z SQL Server tabel w tryb przeglądania za pomocą kwerendy WYBIERAJĄCEJ, która obejmuje łączyćzewnętrznegoinstrukcja.
indeks unikatowy jest zdefiniowany w tabela , która znajduje się na wewnętrznej stronie łączyćzewnętrznegoinstrukcja.
Aby odtworzyć to zachowanie w tryb przeglądania, wykonaj następujące kroki:
W SQL Server Management Studio, tworzenie bazy danych o nazwie SampleDB.
W SampleDB bazy danych, tworzenie tleft tabela i tright tabela zarówno zawierają pojedynczej kolumna o nazwie c1.Zdefiniować indeks unikatowy c1 kolumna w tleft tabelai zestaw kolumna akceptuje wartości null .Aby to zrobić, uruchom następujące polecenie w Transact-SQL instrukcji w oknie prawidłowej kwerendy:
CREATE TABLE tleft(c1 INT NULL UNIQUE) ; GO CREATE TABLE tright(c1 INT NULL) ; GO
Wstawić kilka wartości w tabela tleft i tright tabela.Upewnij się, Wstaw wartość null w tleft tabela.Aby to zrobić, uruchom następujące polecenie w Transact-SQL instrukcji w oknie kwerendy:
INSERT INTO tleft VALUES(2) ; INSERT INTO tleft VALUES(NULL) ; INSERT INTO tright VALUES(1) ; INSERT INTO tright VALUES(3) ; INSERT INTO tright VALUES(NULL) ; GO
Włącz NO_BROWSETABLE opcji.Aby to zrobić, uruchom następujące polecenie w Transact-SQL instrukcji w oknie kwerendy:
SET NO_BROWSETABLE ON ; GO
Dostęp do danych w tabela tleft i tright tabela za pomocą łączyćzewnętrznegoinstrukcja kwerendy WYBIERAJĄCEJ. Upewnij się, że tleft tabela znajduje się na wewnętrznej stronie łączyćzewnętrznegoinstrukcja. Aby to zrobić, uruchom następujące polecenie w Transact-SQL instrukcji w oknie kwerendy:
SELECT tleft.c1 FROM tleft RIGHT JOIN tright ON tleft.c1 = tright.c1 WHERE tright.c1 <> 2 ;
Należy zauważyć następujące dane wyjściowe w okienku wyników:
C1
----
NULL
NULL
Po uruchomieniu kwerendy WYBIERAJĄCEJ dostęp do tabel w tryb przeglądania zestaw wyników kwerendy WYBIERAJĄCEJ, zawiera dwie wartości null dla c1 kolumna w tabela tleft z powodu definicji zewnętrzne prawe łączyć instrukcja.W związku z tym w zestaw wyników, nie odróżnia wartości null , które pochodzą z tabela i wartości null , które wprowadziła zewnętrzne prawe łączyć instrukcja .Jeśli musisz ignorują wartości null z zestaw wynikówmoże pojawić się nieprawidłowe wyniki .
Ostrzeżenie
Kolumny, które są uwzględnione w indeks unikatowy nie akceptuje wartości null , wartości null w zestaw wyników wprowadzono przez zewnętrzne prawe łączyć instrukcja.
XML
Określa, że wyniki kwerendy są zwracane w postaci dokumentu XML.Należy określić jeden z następujących trybów XML: RAW, AUTO, JAWNE.Aby uzyskać więcej informacji o danych XML i SQL Server, zobacz Konstruowanie XML za pomocą języka XML dla.RAW ('ElementName')
Trwa wynik kwerendy i przekształca każdy wiersz w zestaw wyników w element XML mający ogólny identyfikator <wiersz /> jako znacznik elementu.Opcjonalnie można określić nazwę dla elementu wiersza.Dane wyjściowe XML wynikowy używa określonego ElementName jako element wiersza generowane dla każdego wiersza.Aby uzyskać więcej informacji, zobacz Używanie trybu RAW i Używanie trybu RAW.AUTOMATYCZNE
Zwraca kwerendy wyniki w drzewie XML proste, zagnieżdżone.Każda tabela w FROM klauzula, dla której co najmniej jedną kolumna na liście SELECT klauzulajest reprezentowana jako XML element.Atrybuty odpowiedniego elementu są mapowane kolumn wymienionych w klauzula SELECT.Aby uzyskać więcej informacji, zobacz Używanie trybu automatycznego.JAWNE
Określa wyraźnie zdefiniowanych kształt wynikowy drzewo składni XML.W tym trybie kwerendy musi być napisana w określony sposób, aby uzyskać dodatkowe informacje dotyczące żądanego zagnieżdżanie jest określona wyraźnie.Aby uzyskać więcej informacji, zobacz Używanie trybu JAWNE.XMLDATA
Zwraca schematu XDR wbudowany, ale nie dodaje do wyniku elementu głównego.Jeżeli określono XMLDATA schematu XDR jest dołączany do dokumentu.Schematu XML ("TargetNameSpaceURI")
Zwraca wbudowanego schematu XSD.Po określeniu niniejszej dyrektywy, która zwraca wartość określonego obszaru nazw w schemacie, można opcjonalnie określić miejsce docelowe obszaru nazw URI.Aby uzyskać więcej informacji, zobacz Generowanie schematu wbudowany XSD.ELEMENTY
Określa, że kolumn są zwracane jako podelementy.W przeciwnym razie są mapowane do atrybutów XML.Ta opcja jest obsługiwana w tylko tryby surowców, automatyczne i ścieżki.Aby uzyskać więcej informacji, zobacz Używanie trybu RAW.XSINIL
Określa, że element z xsi: nil atrybut zestaw na True utworzone dla wartości NULL w kolumna .Ta opcja może być określony tylko elementy dyrektywy.Aby uzyskać więcej informacji, zobacz Generowanie elementów dla wartości NULL przy użyciu parametru XSINIL.NIEOBECNY
Wskazuje, że dla wartości nullwkolumna , odpowiadające im elementy XML nie zostanie dodana w wyniku XML. Tej opcji należy określić tylko w przypadku elementów.ŚCIEŻKA ("ElementName")
Generuje <wiersz> element otoki dla każdego wiersza w zestaw wyników.Opcjonalnie można określić nazwę elementu <wiersz> element otoki.Jeśli dostępne jest pusty ciąg , takich jak XML PATH (")), element otoki nie jest generowane.Przy użyciu ścieżki może dostarczyć prostsze alternatywą dla kwerendy, napisane przy użyciu dyrektywy JAWNE.Aby uzyskać więcej informacji, zobacz Używanie trybu ścieżki.BINARNE BASE64
Określa, czy kwerenda zwraca dane binarne w formacie binarnym algorytmem Base64.Kiedy pobierasz dane binarne przy użyciu surowców i tryb JAWNE, ta opcja musi być określona.Jest to wartość domyślna w trybie AUTO.TYP
Określa, czy kwerenda zwraca wyniki jako xml typu.Aby uzyskać więcej informacji, zobacz Typ dyrektywy w XML dla kwerend.GŁÓWNY ("RootName")
Określa, że elementpoziom pojedynczego góry - dodać do wynikowego pliku XML.Opcjonalnie można określić nazwę elementu głównego do wygenerowania.Jeżeli nie określono nazwy głównego opcjonalna, domyślnie <głównego> element jest dodawany.
Przykłady
W następującym przykładzie określono FOR XML AUTO z TYPE i XMLSCHEMA Opcje.Ze względu na TYPE , opcja zestaw wyników jest zwracana do klient jako xml typu.XMLSCHEMA Opcja określa, czy wbudowanego schematu XSD jest uwzględniona w danych XML zwróconych oraz ELEMENTS opcja określa, że wynik XML jest zorientowany na element.
USE AdventureWorks2008R2;
GO
SELECT p.BusinessEntityID, FirstName, LastName, PhoneNumber AS Phone
FROM Person.Person AS p
Join Person.PersonPhone AS pph ON p.BusinessEntityID = pph.BusinessEntityID
WHERE LastName LIKE 'G%'
ORDER BY LastName, FirstName
FOR XML AUTO, TYPE, XMLSCHEMA, ELEMENTS XSINIL;