Udostępnij za pośrednictwem


DLA klauzuli (Transact-SQL)

DLA klauzula pozwala określić opcję PRZEGLĄDAJ lub XML.PRZEGLĄDAJ i XML są opcje niepowiązanych.

Ważna informacjaWaż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.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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:

    1. W SQL Server Management Studio, tworzenie bazy danych o nazwie SampleDB.

    2. 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
      
    3. 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
      
    4. 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
      
    5. 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;