Aracılığıyla paylaş


Toplu veri alma, kimlik değerleri saklama

Data files that contain identity values can be bulk imported into an instance of Microsoft SQL Server.Varsayılan olarak, içe aktarılan veri dosyasında kimlik sütun değerleri dikkate alınmaz veSQL Serverbenzersiz değerler otomatik olarak atar.Benzersiz değerleri tablo oluşturulurken belirtilen başlangıç ve artış değerleri temel alır.

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.

EngellemeSQL ServerToplu veri satırları olarak içe aktarma sırasında kimlik değerlerini atama gelen bir tablo, uygun koruma kimlik komut niteleyici. kullanmaBir Canlı Kimlik niteleyici belirtmeSQL Serververi dosyası. kimlik değerlerini kullanır.Bu niteleyiciler aşağıdaki gibidir:

Komutu

Canlı kimlik niteleyici

Niteleyici türü

Kullanımıbcp

-E

Anahtar

TOPLU EKLEME

KEEPIDENTITY

Bağımsız değişken

EKLE...SEÇİN * openrowset(bulk...) GELEN

KEEPIDENTITY

Tablo İpucu

Daha fazla bilgi için bkz:Kullanımıbcp yardımcı programı,BULK INSERT (Transact-SQL),OPENROWSET (Transact-SQL),INSERT (Transact-SQL),SELECT (Transact-SQL), andTablo ipuçları (Transact-SQL).

Örnekler

Bu konuda toplu örneklerde INSERT kullanarak veri al...SELECT * FROM OPENROWSET(BULK...) ve varsayılan değerleri tutmak.

Örnek tablo

Toplu alma örnekler gerektiren bir tablo adlımyTestKeepNulls tablo altında dbo şema. AdventureWorks örnek veritabanının oluşturulması To create this table.in SQL Server Management Studio Query Editor, execute:

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

The Department table on which myDepartment is based has IDENTITY_INSERT is set to OFF.Bu nedenle, kimlik sütun veri almak için KEEPIDENTITY belirtmeniz gerekir veya-E.Tablo şema için bkz:Departman tablo (AdventureWorks).

Örnek veri dosyası

Tarafından verilen veri toplu toplu alma örneklerde kullanılan veri dosyasını içerenHumanResources.DepartmentTablo yerel biçimi.Sırasında veri dosyası oluşturmak içinMicrosoftWindows komut istemi girin:

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

Örnek biçim dosyası

Bu toplu alma örnek XML kullanmak biçim dosyası,myDepartment-f-x-n.Xmlkullanan yerel veri biçimi.Bu örnek kullanırKullanımıbcp Bunu oluşturmak için oluşturmak için biçim dosyası ' dan HumanResources.Departmenttablosu AdventureWorksveritabanı.Windows komut istemi isteminde girin:

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

Bir biçim dosyası oluşturma hakkında daha fazla bilgi için bkz:Bir biçim dosyası oluşturuluyor.

C.Kullanımıbcp ve tutma kimlik değerlerini kullanma

Aşağıdaki örnek, kimlik değerlerini kullanırken nasıl gösterirKullanımıbcp . için toplu alma The bcp command uses the format file, myDepartment-f-n-x.Xml, and contains the following switches:

Niteleyicileri

Açıklama

-E

Kimlik sütun. kullanılacak kimlik değeri veya değerleri veri dosyasındaki olan belirtir

-T

BelirleyenKullanımıbcp yardımcı SQL Servergüvenilir bir bağlantı. için bağlar

Windows komut istemi istemine girin.

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

b.Kimlik değerleri tutma ve BULK INSERT kullanma

Toplu alma verileri için BULK INSERT aşağıdaki örnekte kullandığımyDepartment-c.Datiçine dosyaAdventureWorks.HumanResources.myDepartmentTablo.deyim KullandığımyDepartment-f-n-x.Xmlbiçim dosyası ve veri dosyasındaki herhangi bir kimlik değeri korunur emin olmak için KEEPIDENTITY seçeneği sunar.

,SQL Server Management StudioSorgusu Düzenleyicisi'ni yürütmek:

USE AdventureWorks;
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.OPENROWSET kullanarak ve kimlik değerleri tutma

Aşağıdaki örnek, toplu alma verileri OPENROWSET toplu satır kümesi sağlayıcı kullanırmyDepartment-c.Datiçine dosyaAdventureWorks.HumanResources.myDepartmentTablo.İfade kullanıyormyDepartment-f-n-x.Xmlbiçim dosyası ve veri dosyasındaki herhangi bir kimlik değeri korunur emin olmak için KEEPIDENTITY İpucu içerir.

,SQL Server Management StudioSorgusu Düzenleyicisi'ni yürütmek:

USE AdventureWorks;
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