Udostępnij za pośrednictwem


Przechowywanie wartości tożsamości podczas zbiorczego, importowanie danych

Data files that contain identity values can be bulk imported into an instance of Microsoft SQL Server.Domyślnie, są ignorowane wartości kolumna tożsamości w pliku danych, który jest importowany i SQL Server automatycznie przypisuje wartości unikatowych.Unikatowe wartości są oparte na początkowej i wartości przyrostu wartości, które są określone podczas tworzenia tabela.

If the data file does not contain values for the identifier column in the table, use a format file to specify that the identifier column in the table should be skipped when importing data.SQL Server assigns unique values for the column automatically.

Aby zapobiec SQL Server z przypisywanie wartości tożsamości podczas luzem Importowanie wierszy danych do tabela, należy użyć odpowiednich tożsamości keep polecenia kwalifikator.Po określeniu kwalifikator keep tożsamości, SQL Server używa wartości tożsamości w pliku danych.Kwalifikatory są następujące:

Polecenia

Zachowaj tożsamości kwalifikator

Typ kwalifikatora.

BCP

-E

Przełącznik

WSTAW LUZEM

KEEPIDENTITY

Argument

WSTAW...WYBIERZ * Z OPENROWSET(BULK...)

KEEPIDENTITY

Wskazówka tabeli

For more information, see Narzędzie bcp, BULK INSERT (Transact-SQL), OPENROWSET (Transact-SQL), INSERT (Transact-SQL), SELECT (Transact-SQL), and Wskazówki tabel (Transact-SQL).

Przykłady

Przykłady w tym temacie import zbiorczy za pomocą polecenia WSTAW dane...Wybierz * Z OPENROWSET(BULK...) i utrzymywanie wartości domyślne.

Przykładowa tabela

Przykłady importu zbiorczego wymagają, że tabela o nazwie myTestKeepNulls tabeli można utworzyć w AdventureWorks2008R2 przykładowej bazy danych pod dbo schematu.To create this table.in SQL Server Management Studio Query Editor, execute:

USE AdventureWorks2008R2;
GO
SELECT * INTO HumanResources.myDepartment 
   FROM HumanResources.Department
      WHERE 1=0;
GO
SELECT * FROM HumanResources.myDepartment;

Działu tabela, w którym myDepartment jest oparta została IDENTITY_INSERT jest zestaw do występujeDlatego też zaimportować dane kolumna tożsamości należy określić KEEPIDENTITY lub -E.

Przykładowy plik danych

Plik danych, używane w przykładach importu zbiorczego zawiera zbiorcze dane wyeksportowane z HumanResources.Department tabela w format macierzysty.Aby utworzyć plik danych na Microsoft wiersz polecenia systemu Windows, wpisz:

bcp AdventureWorks2008R2.HumanResources.Department out myDepartment-n.Dat -n -T

Przykładowy plik formatu

Przykłady importu zbiorczego, to użyj XML plik formatu, myDepartment-f-x-n.Xml, który korzysta z formatów danych w trybie macierzystym.W tym przykładzie użyto bcp utworzyć wygenerować ten plik formatu z HumanResources.Department tabela AdventureWorks2008R2 bazy danych.W wiersz polecenia systemu Windows należy wprowadzić:

bcp AdventureWorks2008R2.HumanResources.Department format nul -n -x -f myDepartment-f-n-x.Xml -T

Aby uzyskać więcej informacji na temat tworzenia plik formatu, zobacz Tworzenie pliku formatu.

A.Za pomocą bcp i przechowywanie wartości tożsamości

Poniższy przykład ilustruje sposób zachować wartości tożsamości podczas używania bcp do danych import zbiorczy.bcp Polecenia zastosowań plik formatu, myDepartment-f-n-x.Xmli zawiera następujące przełączniki:

Kwalifikatory

Opis

-E

Określa, że tożsamość wartość lub wartości w pliku danych są używane kolumna tożsamości.

-T

Określa, że bcp narzędzie łączy się z SQL Server z zaufane połączenie.

W wiersz polecenia systemu Windows należy wprowadzić.

bcp AdventureWorks2008R2.HumanResources.myDepartment in C:\myDepartment-n.Dat -f C:\myDepartment-f-n-x.Xml -E -T

B.Za pomocą polecenia WSTAW luzem i utrzymywanie wartości tożsamości

W poniższym przykładzie użyto luzem WSTAW, aby import zbiorczy danych z myDepartment-c.Dat plik do AdventureWorks2008R2.HumanResources.myDepartment tabela.Używa instrukcja myDepartment-f-n-x.Xml plik formatu i zawiera opcję KEEPIDENTITY, aby zapewnić, że wszelkie wartości tożsamości w pliku danych są zachowywane.

W SQL Server Management Studio Edytor kwerend wykonać:

USE AdventureWorks2008R2;
GO
DELETE HumanResources.myDepartment;
GO
BULK INSERT HumanResources.myDepartment
   FROM 'C:\myDepartment-n.Dat'
   WITH (
      KEEPIDENTITY,
      FORMATFILE='C:\myDepartment-f-n-x.Xml'
   );
GO
SELECT * FROM HumanResources.myDepartment;

C.Za pomocą OPENROWSET i utrzymywanie wartości tożsamości

W poniższym przykładzie użyto OPENROWSET dostawca zbiorczych zestawów zestaw wierszy do luzem importowanie danych z myDepartment-c.Dat plik do AdventureWorks2008R2.HumanResources.myDepartment tabela.Używa instrukcja myDepartment-f-n-x.Xml plik formatu i zawiera wskazówki KEEPIDENTITY, aby zapewnić, że wszelkie wartości tożsamości w pliku danych są zachowywane.

W SQL Server Management Studio Edytor kwerend wykonać:

USE AdventureWorks2008R2;
GO
DELETE HumanResources.myDepartment;
GO

INSERT INTO HumanResources.myDepartment
   with (KEEPIDENTITY)
   (DepartmentID, Name, GroupName, ModifiedDate)
   SELECT *
      FROM  OPENROWSET(BULK 'C:\myDepartment-n.Dat',
      FORMATFILE='C:\myDepartment-f-n-x.Xml') as t1;
GO