Aracılığıyla paylaş


Kimlik değerleri toplu olduğunda veri alma tutma

Data files that contain identity values can be bulk imported into an instance of Microsoft SQL Server.Varsayılan olarak, değerleri kimlik sütunu alınan veri dosyasına göz ardı edilir ve SQL Server benzersiz değerler otomatik olarak atar.Benzersiz değerleri tablo oluşturma sırasında belirtilen başlangıç ve artış değerleri esas 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.

Önlemek için SQL Server bulk satır veri içe aktarma sırasında kimlik değerlerini atama ile gelen bir tablo, uygun kimlik Koru komutu niteleyici kullanın.Bir Canlı kimlik niteleyici belirttiğinizde SQL Server kullandığı kimlik değerleri veri dosyası.Bu niteleyiciler olarak aşağıdaki gibidir:

Komutu

Keep kimlik niteleyici

Niteleyici türü

BCP

-E

Anahtarı

BULK INSERT

KEEP IDENTITY

Bağımsız değişken

EKLE...SEÇİN * OPENROWSET(BULK...) DAN

KEEP IDENTITY

Tablo İpucu

For more information, see bcp Yardımcı Programı, BULK INSERT (Transact-SQL), OPENROWSET (Transact-SQL), INSERT (Transact-SQL), SELECT (Transact-SQL), and Tablo İpuçları (Transact-SQL).

Örnekler

Bu konudaki örneklerde toplu alma INSERT kullanarak veri...SEÇİN * ndan openrowset(bulk...) ve varsayılan değerleri tutma.

Örnek tablo

Bir tablo taşıyan bir toplu alma örnekler gerektirir myTestKeepNulls tablo oluşturulmasını AdventureWorks2008R2 örnek veritabanı altında dbo şema.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;

The Department table on which myDepartment is based has IDENTITY_INSERT is set to OFF.Bu nedenle, verilerin içe aktarılacağı bir kimlik sütunu KEEPIDENTITY belirtmeniz gerekir veya -e.

Örnek veri dosyası

Dışa veri toplu bulk Import örneklerde kullanılan veri dosyasını içeren HumanResources.Department tablo doğal biçiminde.Adresindeki veri dosyası oluşturmak için Microsoft Windows komut istemi istemine girin:

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

Örnek Biçim dosyası

Bu toplu alma örnekler xml kullanmak biçim dosyası, myDepartment-f-x-n.Xml, hangi kullanır yerel veri biçimi.Bu örnek kullanır bcp bu biçim dosyası oluşturmak için oluşturmak için HumanResources.Department tablo , AdventureWorks2008R2 veritabanı.Windows komut istemi istemine girin:

bcp AdventureWorks2008R2.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.

A.BCP ve kimlik değerleri tutma

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

Niteleyiciler

Açıklama

-E

Kimlik değeri veya değerleri veri dosyası için kullanılacak belirtir kimlik sütunu.

-T

Belirleyen bir bcp yardımcı programını bağlanır SQL Server ile bir güvenilir bağlantı.

Windows komut istemi istemine girin.

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

B.bulk INSERT kullanarak ve kimlik değerleri tutma

Toplu alma verileri için bulk INSERT aşağıdaki örnek kullanır myDepartment-c.Dat içine dosya AdventureWorks2008R2.HumanResources.myDepartment tablo.deyim Kullanan myDepartment-f-n-x.Xml biçimi dosya ve veri dosyasında herhangi bir kimlik değeri korunur sağlamak için KEEPIDENTITY seçeneğini içerir.

De SQL Server Management Studio yürütmek Query Editor:

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.openrowset kullanarak ve kimlik değerleri tutma

Aşağıdaki örnek, openrowset toplu satır kümesi sağlayıcı toplu alma veri kullanır myDepartment-c.Dat içine dosya AdventureWorks2008R2.HumanResources.myDepartment tablo.deyim Kullanan myDepartment-f-n-x.Xml biçimi dosya ve veri dosyasında herhangi bir kimlik değeri korunur sağlamak için KEEPIDENTITY ipucu içerir.

De SQL Server Management Studio yürütmek Query Editor:

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