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