Ładowanie danych XML
Można przenieść dane XML z SQL Server 2000 do SQL Server 2005 lub SQL Server 2008 w kilka sposobów.Na przykład:
Jeśli dane w [n] kolumna tekstu lub obrazu w SQL Server 2000 bazy danych, można zaimportować tabela do nowszej wersja bazy danych za pomocą Integration Services.Zmień typ kolumna XML przy użyciu instrukcja ALTER TABLE.
Możesz kopiowanie masowe danych z SQL Server 2000 za pomocą bcp, a następnie luzem wstawić dane do bazy danych nowszej wersja przy użyciu cali bcp
Jeśli dane w kolumnach relacyjnej SQL Server 2000 bazy danych, Utwórz nową tabela z kolumną tekstu [n] i, opcjonalnie, klucz podstawowy kolumna dla identyfikatora wiersza.Użyj klient programowania pobrać plik XML, który jest generowany na serwerze XML dla i zapisać go w [n]text kolumna.Następnie należy użyć wspomnianych technik do transferu danych w nowszej wersja bazy danych.Można zapisać bezpośrednio XML kolumna XML w nowszej wersja bazy danych.
Zbiorcze ładowanie danych XML
Załaduj dane XML można luzem do serwera przy użyciu ładowanie zbiorcze możliwości SQL Server, takich jak bcp.OPENROWSET umożliwia załadowanie danych do kolumna XML z plików.Poniższy przykład ilustruje ten punkt.
Przykład: Ładowanie z plików XML
W tym przykładzie pokazano, jak wstawić wiersz w tabela T.Wartości kolumna XML jest ładowany z pliku C:\MyFile\xmlfile.xml jako CLOB i dostarczone kolumna całkowita wartość 10.
INSERT INTO T
SELECT 10, xCol
FROM (SELECT *
FROM OPENROWSET (BULK 'C:\MyFile\xmlfile.xml', SINGLE_CLOB)
AS xCol) AS R(xCol)
Kodowanie tekstu
SQL Serverprzechowuje dane XML w formacie Unicode (UTF-16).Dane XML pobrane z serwera wychodzi przy użyciu kodowania UTF-16.Innego kodowania, należy należy wykonać konwersję wymagane na pobrane dane.Dane XML może być czasami innego kodowania.Jeśli tak jest, należy zachować ostrożność podczas ładowania danych.Na przykład:
Jeśli tekst XML jest w formacie Unicode (UCS-2, UTF-16), można przypisać go do kolumna XML, zmienna lub parametr bez problemów.
Jeśli kodowanie nie jest Unicode i niejawne, z powodu źródło stronę kodową ciąg znaków strona kodowa bazy danych powinien być taki sam lub zgodny z punktów kodowych, które chcesz załadować.Jeżeli wymagane, użyć SORTUJ.Jeśli nie taka strona kodowa serwera istnieje, należy dodać jawna deklaracja XML z prawidłowe kodowanie.
Używane jawne kodowanie, użyj jednej varbinary() typu, który ma bez interakcji z strona kodowas lub użyj odpowiedniego typu ciąg strona kodowa.Następnie przypisz dane kolumna XML, zmienna lub parametr.
Przykład: Jawne określenie kodowania
Załóżmy, że dokument XML, vcdoc, przechowywane jako varchar(max) nie ma jawnej deklaracja XML.Poniższa instrukcja dodaje deklaracja XML z kodowania "iso8859-1", łączy dokumentu XML, posługując się miarką wynik varbinary(max) Tak, aby reprezentacja bajt jest zachowywany, a następnie ostatecznie nadaje jej do pliku XML.Dzięki temu procesor XML do analizowania danych zgodnie z określonym kodowania "iso8859-1" i wygenerowania odpowiedniej reprezentacji UTF-16 wartości ciąg.
SELECT CAST(
CAST (('<?xml version="1.0" encoding="iso8859-1"?>'+ vcdoc) AS VARBINARY (MAX))
AS XML)
Ciąg niezgodności kodowania
Jeśli skopiujesz i wkleisz XML jako literał ciągu znaków w oknie Edytor kwerend w SQL Server Management Studio, mogą wystąpić VARCHAR [N] ciąg kodowanie niezgodności.Zależy to kodowanie wystąpienie XML.W wielu przypadkach można usunąć deklaracja XML.Na przykład:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema …
Następnie należy uwzględnić n dokonać XML wystąpienia wystąpienie Unicode.Na przykład:
-- Assign XML instance to a variable.
DECLARE @X XML
SET @X = N'…'
-- Insert XML instance into an xml type column.
INSERT INTO T VALUES (N'…')
-- Create an XML schema collection
CREATE XML SCHEMA COLLECTION XMLCOLL1 AS N'<xsd:schema … '