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