SQL Server Query XML

SQL Server Query XML
XML lub rozszerzalny język znaczników to język znaczników do transportu i przechowywania danych. XML jest prosty i bardzo opisowy w swojej naturze. To sprawia, że ​​jest to bardzo powszechny język udostępniania informacji między platformami i aplikacjami.

W tym przewodniku dowiesz się, jak korzystać z danych XML w SQL Server. Omówimy tworzenie informacji XML z istniejących tabel, ładowanie dokumentów XML i więcej.

Rozpoczęcie pracy

Aby lepiej zrozumieć, jak korzystać z danych XML w SQL Server, najpierw utworzymy przykładowe dane, jak pokazano w następujących zapytaniach:

-- Utwórz testową bazę danych
Użytkownicy CreatedATABase;
-- przełącz db;
Użyj użytkowników;
CreateTableUser_info (
Identidentity (1,1) Notnullprimary Key,
NameVarchar (125),
e -mail varchar (255),
Departament Varchar (50),
Pieniądze z wynagrodzenia
);
INSERTINTOUSER_INFO (nazwa, e -mail, dział, wynagrodzenie)
Wartości („Brandon Benitez”, „[email protected] ', „Game Developer”, 140000 $),
(„Paulina Bowman”, „[email protected] ', „Fullstack Developer”, 133000 $),
(„Carl Crawford”, „[email protected] ', „Frontend Developer”, 110000 $),
(„Brian Booth”, „Booth@próbka.AI ', „Dewabase Developer”, 150000 $),
(„Jasmin Pham”, „[email protected] ', „WordPress Developer”, 102000 $),
(„Tamara Davidson”, „[email protected] ', „Graphics Developer”, 122000 $),
(„Jaylan Ho”, „[email protected] ', „DevOps Developer”, 111000 $),
(„Winfred Fleming”, „[email protected] ', „backend developer”, 145000 $);

Po uzyskaniu przykładowych danych możemy przejść do nauki pracy z XML w SQL Server.

Konwertuj tabelę SQL na XML

Możemy przekonwertować dane z tabeli SQL na XML za pomocą Auto XML i dla instrukcji ścieżek XML.

Na przykład, aby przekonwertować poprzednią tabelę przykładową na XML, możemy uruchomić zapytanie jako:

Wybierz * z user_info
dla XML Auto;

Powyższe zapytanie zwróci ciąg XML, jak pokazano:

W SQL Server Management Studio możesz kliknąć link XML, aby wyświetlić i sformatować dane XML w czytelnym formacie jako:

Zauważ, że XML zawiera 5 jednostek użytkowników z każdą kolumną tabeli jako atrybut i jej powiązaną wartość.

Możesz także użyć ścieżki dla XML do konwersji tabeli na XML. Ta opcja konwertuje każdy rekord w tabeli jako element i kolumny jako elementy zagnieżdżone.

Przykładem jest jak pokazano:

Wybierz * z user_info
Dla ścieżki XML

Zapytanie powinno zwrócić dane XML, jak pokazano:

Tutaj każdy rekord w tabeli jest reprezentowany jako element z kolumnami i wartościami zagnieżdżonymi w głównym elemencie.

Aby zmienić węzeł główny z wiersza na niestandardową nazwę, możemy wykonać następujące czynności:

Wybierz * z user_info
Dla ścieżki XML

Załaduj plik XML do SQL

Możemy załadować dane XML z pliku za pomocą instrukcji OpenRowset. Rozważ następujący przykład:

CreateTableUser_xml (
xmldataxml
);
INSERTINTOUSER_XML (xmldata)
SelectConvert (XML, BulkColumn) AsbulkColumn
FromPeNrowset (Bulk'c: \ Users \ CS \ Documents \ User_info.xml ', single_blob) Ascorrelat_name;
Wybierz * fromuser_xml;

Zapytanie powinno zaimportować określony plik XML do utworzonej tabeli.

Konwertuj XML na tabelę

Aby przekonwertować dane z pliku XML na tabelę, możemy użyć funkcji SP_XML_PREPEDOCument i OpenXML.

-- Konwertuj XML na tabelę
Deklaruj @user_info xml
Wybierz @user_info = Info
FromPeSenrowset (Bulk 'C: \ Users \ CS \ Documents \ User_info.xml ', single_blob) asuser_info (informacje)
Wybierz @user_info
Deklaruj @hdoc int
exec sp_xml_pretedocument @HDOC Wyjście, @info_info
wybierać *
fromPenxml (@hdoc, '/user_info/user_info', 2)
z(
NameVarchar (125),
e -mail varchar (255),
Departament Varchar (50),
Pieniądze z wynagrodzenia
)
EXEC SP_XML_REMOVEDOCUMENT @HDOC

Zapytanie powinno przeanalizować plik XML i przekonwertować atrybuty na tabelę.

Wniosek

Niniejszy przewodnik obejmuje podstawy pracy z danymi XML na serwerze SQL, tworzenie informacji XML z istniejących tabel i ładowanie dokumentów XML. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź więcej artykułów z podpowiedzi Linux, aby uzyskać więcej wskazówek i informacji o serwerze SQL.