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 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ıbcp … iç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).