Aracılığıyla paylaş


Veri Al toplu işlemi için bir biçim dosyası'nı kullanma

Bu konu, kullanılışını bir biçim dosyası toplu alma işlemlerinde.biçim dosyası, tablonun sütun alanları veri dosyasının eşleştirir.In Microsoft SQL Server 2005 and later versions, you can use a non-XML or XML format file to bulk import data when using a bcp command or a BULK INSERT or INSERT ...SEÇİN * openrowset(bulk...) GELEN Transact-SQL Command.

Important noteImportant Note:

Tüm giriş alanları, bir Unicode karakter veri dosyası ile çalışmak bir biçim dosyası için Unicode metin dizeleri (yani, sabit boyutlu veya karakter sonlandırıldı Unicode dize) olmalıdır.

Not

Biçim dosyalarla tanımıyorsanız, bkz: Disk XML biçimi dosyaları anlama ve XML biçimi dosyaları anlama.

Toplu alma komutları için Biçim dosyası seçenekleri

Aşağıdaki tabloda, toplu alma komutları için biçim dosyasını seçeneğini özetler.

Toplu yükleme komutu

Format dosya seçeneğini kullanma

TOPLU EKLEME

formatfile = 'format_file_path'

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

formatfile = 'format_file_path'

Kullanımıbcpiçinde

-fformat_file

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

Not

Verme toplu veya SQLXML veri almak için aşağıdaki veri türlerinden birini kullanmak, biçim dosyası: SQLCHAR SQLVARYCHAR (verileri istemci kod sayfa veya kod sayfa tarafından harmanlama örtük olarak gönderilir), SQLNCHAR veya SQLNVARCHAR, (veri Unicode olarak gönderilir) SQLBINARY veya SQLVARYBIN (herhangi bir dönüştürme verilerin gönderildiği).

Örnekler

Bu bölümdeki örnekler biçimindeki dosyaları toplu veri kullanarak alma için nasıl kullanılacağı gösterilmektedir Kullanımıbcp komut ve BULK INSERT ve INSERT... SELECT * FROM OPENROWSET(BULK...) deyimleri.Toplu alma örneklerinden birini çalıştırmadan önce bir örnek tablo, veri dosyası oluşturmak gereken ve bir biçim dosyası.

Örnek tablo

Örnekler, bir tablo adı gerektirir. myTestFormatFiles tablo içinde oluşturulmasıAdventureWorks örnek veritabanınıdbo şema.Bu bir tablo oluşturmak için SQL Server Management Studio Sorgu Düzenleyicisi'nde, yürütmek:

USE AdventureWorks;
GO
CREATE TABLE myTestFormatFiles (
   Col1 smallint,
   Col2 nvarchar(50),
   Col3 nvarchar(50),
   Col4 nvarchar(50)
   );
GO

Örnek veri dosyası

Örnekler, örnek bir veri dosyası kullanma myTestFormatFiles-c.Dat, hangi aşağıdaki kayıtları içerir. Sırasında veri dosyası oluşturmak için Microsoft Windows komut istemi girin:

10,Field2,Field3,Field4
15,Field2,Field3,Field4
46,Field2,Field3,Field4
58,Field2,Field3,Field4

Örnek biçim dosyaları

Bu bölümdeki örnekler bazı XML kullanan biçim dosyası, myTestFormatFiles-f-x-c.Xml, ve diğer örnekler arasında olmayan-XML biçim dosyası. Her iki biçimi dosyaları karakter veri biçimleri ve bir varsayılan olmayan alan ayırıcısı (,) kullanın.

Örnek olmayan-XML biçim dosyası

Aşağıdaki örnek kullanır. Kullanımıbcp XML oluşturmak için biçim dosyası gelenmyTestFormatFiles TABLO. The myTestFormatFiles.Fmt file contains the following information:

9.0
4
1       SQLCHAR       0       7       ","      1     Col1         ""
2       SQLCHAR       0       100     ","      2     Col2         SQL_Latin1_General_CP1_CI_AS
3       SQLCHAR       0       100     ","      3     Col3         SQL_Latin1_General_CP1_CI_AS
4       SQLCHAR       0       100     "\r\n"   4     Col4         SQL_Latin1_General_CP1_CI_AS

Kullanmak için Kullanımıbcp with the Format seçeneği, Windows komut istemi isteminde, bu biçim dosyası oluşturmak için girin:

bcp AdventureWorks..MyTestFormatFiles format nul -c -t, -f myTestFormatFiles.Fmt -T

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

Örnek XML biçim dosyası

Aşağıdaki örnek kullanır. Kullanımıbcp XML oluşturmak için oluşturmak için biçim dosyası gelenmyTestFormatFiles TABLO. The myTestFormatFiles.Xml file contains the following information:

<?xml version="1.0"?>
<BCPFORMAT xmlns="https://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <RECORD>
  <FIELD ID="1" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="7"/>
  <FIELD ID="2" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
  <FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
 </RECORD>
 <ROW>
  <COLUMN SOURCE="1" NAME="Col1" xsi:type="SQLSMALLINT"/>
  <COLUMN SOURCE="2" NAME="Col2" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="3" NAME="Col3" xsi:type="SQLNVARCHAR"/>
  <COLUMN SOURCE="4" NAME="Col4" xsi:type="SQLNVARCHAR"/>
 </ROW>
</BCPFORMAT>

Kullanmak için Kullanımıbcp with the Format seçeneği, Windows komut istemi isteminde, bu biçim dosyası oluşturmak için girin:

bcp AdventureWorks..MyTestFormatFiles format nul -c -t, -x -f myTestFormatFiles.Xml -T

Kullanımıbcp kullanma

Aşağıdaki örnek kullanır. Kullanımıbcp toplu olarak alma verimyTestFormatFiles-c.Dat veri dosyasına HumanResources.myTestFormatFiles ' de tablo AdventureWorks Örnek Veritabanı'nı tıklatın. Bu örnek XML kullanan biçim dosyası, MyTestFormatFiles.Xml. Örneğin, veri dosyasını almadan önce varolan herhangi bir tablo satırları siler.

Windows komut istemi isteminde girin:

bcp AdventureWorks..myTestFormatFiles in C:\myTestFormatFiles-c.Dat -f C:\myTestFormatFiles.Xml -T

Not

Bu komut hakkında daha fazla bilgi için bkz: Kullanımıbcp yardımcı programı.

BULK INSERT kullanma

Toplu alma verileri için BULK INSERT aşağıdaki örnek kullandığı myTestFormatFiles-c.Dat veri dosyasına HumanResources.myTestFormatFiles ' de tablo AdventureWorks Örnek Veritabanı'nı tıklatın. Bu örnek olmayan XML biçimi dosyasını kullanır. MyTestFormatFiles.Fmt. Örneğin, veri dosyasını almadan önce varolan herhangi bir tablo satırları siler.

Içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, yürütün:

USE AdventureWorks;
GO
DELETE myTestFormatFiles;
GO
BULK INSERT myTestFormatFiles 
   FROM 'C:\myTestFormatFiles-c.Dat' 
   WITH (FORMATFILE = 'C:\myTestFormatFiles.Fmt');
GO
SELECT * FROM myTestFormatFiles;
GO

Not

Bu konuda daha fazla bilgi için deyim, bkz: BULK INSERT (Transact-SQL).

OPENROWSET toplu satır kümesi sağlayıcı kullanma

Aşağıdaki örnek kullanır. INSERT ... SELECT * FROM OPENROWSET(BULK...) Toplu alma verileri için myTestFormatFiles-c.Dat veri dosyasına HumanResources.myTestFormatFiles ' de tablo AdventureWorks Örnek Veritabanı'nı tıklatın. Bu örnek XML kullanan biçim dosyası, MyTestFormatFiles.Xml. Örneğin, veri dosyasını almadan önce varolan herhangi bir tablo satırları siler.

Içinde SQL Server Management Studio Sorgu Düzenleyicisi'nde, yürütün:

USE AdventureWorks;
DELETE myTestFormatFiles;
GO
INSERT INTO myTestFormatFiles
    SELECT *
      FROM  OPENROWSET(BULK  'C:\myTestFormatFiles-c.Dat',
      FORMATFILE='C:\myTestFormatFiles.Xml'     
      ) as t1 ;
GO
SELECT * FROM myTestFormatFiles;
GO

Örnek tablo kullanarak işiniz bittiğinde, aşağıdaki ifadeyi kullanan bırak:

DROP TABLE myTestFormatFiles

Not

OPENROWSET BULK yan tümce hakkında daha fazla bilgi için bkz: OPENROWSET (Transact-SQL).