Kimlik değerleri toplu olduğunda veri (SQL Server) alma tutun
Kimlik değerleri içeren veri dosyalarını toplu bir örneğini alınmış olabilir Microsoft SQL Server. Varsayılan olarak, alınan veri dosyasında kimlik sütun değerleri göz ardı edilir ve SQL Serverbenzersiz değerler otomatik olarak atar. Benzersiz değerleri tablo oluşturulurken belirtilen tohum ve artış değerleri temel alınır.
Tanımlayıcı sütun tablosundaki değerleri veri dosyasındaki içermiyorsa, bir biçim dosyası tanımlayıcı sütun tablosundaki verileri içe aktarırken olarak atlanmasını belirtmek için kullanın. SQL Serversütun benzersiz değerleri otomatik olarak atar.
Önlemek için SQL Serverkimlik değerleri toplu bir tabloya veri satırları alma sırasında atamasını, uygun tutmak-kimlik komut niteleyiciler kullanın. Tut-kimlik niteleyici, belirttiğiniz zaman SQL Serverkimlik değerleri veri dosyasındaki kullanır. Bu niteleyiciler aşağıdaki gibidir:
Komutu |
Tut-kimlik niteleyici |
Niteleyici türü |
---|---|---|
bcp |
-E |
Anahtarı |
TOPLU EKLEME |
KEEPIDENTITY |
Bağımsız değişken |
EKLE... SEÇİN * OPENROWSET(BULK...) DAN |
KEEPIDENTITY |
Tablo ipucu |
For more information, see BCP yardımcı programı, BULK INSERT (Transact-SQL), OPENROWSET (Transact-SQL), Insert (Transact-sql), select (Transact-sql), and Tablo ipuçları (Transact-sql).
[!NOT]
Çoklu tablolarda kullanılabilir veya bu çağrılabilir uygulamalardan herhangi bir tabloya başvuran olmadan otomatik olarak artan bir sayı oluşturmak için bkz: Sıra numaraları.
Örnekler
Bu konuda toplu örnekler INSERT kullanarak veri alma... SEÇİN * from openrowset(bulk...) ve varsayılan değerleri tutma.
Örnek tablo
Toplu alma örnek tablo ismi gerektirir myTestKeepNulls tablo oluşturulabilir AdventureWorks örnek veritabanı altında dbo şema. Bu tablo oluşturmak için. de SQL Server Management Studiosorgu Düzenleyicisi, yürütün:
USE AdventureWorks;
GO
SELECT * INTO HumanResources.myDepartment
FROM HumanResources.Department
WHERE 1=0;
GO
SELECT * FROM HumanResources.myDepartment;
Bölümü hangi masaya myDepartmentesas olan ıdentıty_ınsert aygıtlarım için ayarlanır Bu nedenle, kimlik sütunu veri almak için KEEPIDENTITY belirtmelisiniz veya -E. Tablo şema, bakın Department Table (AdventureWorks).
Örnek veri dosyası
Dan verilen veri toplu toplu alma örneklerde kullanılan veri dosyasını içeren HumanResources.Departmentözgün biçiminde tablo. Veri dosyası oluşturmak için MicrosoftWindows komut isteminde, komut girin:
bcp AdventureWorks.HumanResources.Department out myDepartment-n.Dat -n -T
Örnek biçimi dosyası
Bu toplu alma örnek bir xml biçimi dosyası kullanma myDepartment-f-x-n.Xml, yerel veri formatlarını kullanır. Bu örnek bcpBu biçimi dosyası oluşturmak için oluşturmak için HumanResources.Departmenttablo AdventureWorksveritabanı. Windows komut istemine girin:
bcp AdventureWorks.HumanResources.Department format nul -n -x -f myDepartment-f-n-x.Xml -T
Biçim dosyasını oluşturma hakkında daha fazla bilgi için bkz: (SQL Server) biçimi dosyası oluşturma.
A.BCP ve kimlik değerleri tutma
Aşağıdaki örnek kullanırken kimlik değerleri tutma gösterilmiştir bcpiçin veri toplu alma. bcpKomut biçim dosyası kullanır myDepartment-f-n-x.Xmlve aşağıdaki anahtarları içerir:
Elemeleri |
Açıklama |
---|---|
-E |
Kimlik değeri veya değerleri veri dosyasındaki kimlik sütunu için kullanılabilir olduğunu belirtir. |
-T |
Belirleyen bcp yarar bağlandığı SQL ServerGüvenilen bir bağlantı ile. |
Windows komut istemine girin.
bcp AdventureWorks.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
Aşağıdaki örnek için veri toplu alma bulk INSERT kullanan myDepartment-c.Datiçine dosya AdventureWorks.HumanResources.myDepartmenttablosu. Deyimi kullanır myDepartment-f-n-x.Xmlbiçimi dosya ve veri dosyasındaki herhangi bir kimlik değerleri korunur sağlamak için KEEPIDENTITY seçeneğini içerir.
De SQL Server Management Studiosorgu Düzenleyicisi, yürütün:
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ı kullanmasını myDepartment-c.Datiçine dosya AdventureWorks.HumanResources.myDepartmenttablosu. Deyimi kullanır myDepartment-f-n-x.Xmlbiçimi dosya ve veri dosyasındaki herhangi bir kimlik değerleri korunur sağlamak için KEEPIDENTITY ipucu içerir.
De SQL Server Management Studiosorgu Düzenleyicisi, yürütün:
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
ilişkili Görevler
Bir biçim dosyası kullanma
Tablo Sütunlar veri dosyası alanlarını (SQL Server) eşlemek için bir biçim dosyası kullanma
Atla veri alanı (SQL Server) için bir biçim dosyası kullanma
(SQL Server) tablo sütun Atla için bir biçim dosyası kullanma
Verileri kullanmak için toplu alma veya toplu verme biçimleri
SQL Server'ın önceki sürümlerden native ve karakter biçimi veri alma
(SQL Server) veri aldığınızda veya için karakter biçimi kullanma
Aldığınızda veya veri (SQL Server) için Unicode karakter biçimi kullanma
Unicode yerel biçim aldığınızda veya veri (SQL Server) kullanmak
Veri biçimleri için Uyumluluk kullanma bcp zamanı belirtmek için
Önek uzunluğu veri dosyaları (SQL Server) kullanma bcp tarafından belirtme
Dosya depolama türü (SQL Server) kullanma bcp tarafından belirtme