Veri Al toplu için bir biçim dosyası kullanma
Bu konuda toplu alma işlemlerinde bir biçim dosyası kullanımını göstermektedir.biçim dosyası alanları veri dosyasının tablodaki sütunları için eşler tablo.De SQL Server 2005 ve sonraki sürümler-xml ya da xml kullanmak biçim dosyası kullanırken, toplu alma veri için bir bcp komut veya bulk INSERT veya Ekle...SEÇİN * openrowset(bulk...) dan Transact-SQL komut.
Önemli |
---|
Unicode karakter veri dosyası ile çalışmak bir biçim dosyası için tüm giriş alanları Unicode metin dizeleri (yani, sabit boyutu veya karakter sona Unicode dize) olması gerekir. |
Not
Biçimi dosyaları ile tanımıyorsanız Bkz: Olmayan xml biçimi dosyaları anlama ve xml biçimi dosyaları anlama.
Toplu alma komutları için biçim dosyası seçenekleri
Aşağıdaki tablo her toplu alma komutları için dosya biçimi seçeneği özetlenmektedir.
BULK load komutu |
Dosya biçimi seçeneği kullanma |
---|---|
BULK INSERT |
FORMATFILE = 'format_file_path' |
EKLE...SEÇİN * OPENROWSET(BULK...) DAN |
FORMATFILE = 'format_file_path' |
bcp … in |
-fformat_file |
Daha fazla bilgi için bkz: bcp Yardımcı Programı, BULK INSERT (Transact-SQL), veya OPENROWSET (Transact-SQL).
Not
toplu vermek veya sqlxml veri almak için aşağıdaki veri türlerinden kullanın, biçim dosyası: sqlchar veya sqlvarychar (verileri istemci kod sayfa veya örtülü harmanlama kod sayfa gönderilir), sqlnchar veya sqlnvarchar (veri Unicode olarak gönderilir), veya SQLBINARY ya da SQLVARYBIN (veri herhangi bir dönüştürme olmadan gönderilir).
Örnekler
Bu bölümdeki örnekler biçimi dosyalar toplu alma verileri kullanarak nasıl kullanılacağını göstermek bcp komutu ve bulk INSERT ve Ekle...SEÇİN * ndan openrowset(bulk...) ifadeleri.Toplu alma örneklerinden birini çalıştırmak için önce bir örnek tablo, veri dosyası oluşturmak gereken ve bir biçim dosyası.
Örnek tablo
Örnek bir tablo taşıyan bir iste myTestFormatFiles tablo oluşturulmasını AdventureWorks2008R2 örnek veritabanı altında dbo şema.Bu tablo oluşturmak için SQL Server Management Studio yürütmek Query Editor:
USE AdventureWorks2008R2;
GO
CREATE TABLE myTestFormatFiles (
Col1 smallint,
Col2 nvarchar(50),
Col3 nvarchar(50),
Col4 nvarchar(50)
);
GO
Örnek veri dosyası
Örnekler örnek veri dosyası kullanmak myTestFormatFiles-c.Dat, içeren aşağıdaki kayıtları.Adresindeki veri dosyası oluşturmak için Microsoft Windows komut istemi istemine 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 kullanmak biçim dosyası, myTestFormatFiles-f-x-c.Xml, ve diğer örnekler xml olmayan biçim dosyası.Karakter veri biçimleri ve varsayılan olmayan her iki biçim dosyaları kullanma alan ayırıcısı (,).
Örnek olmayan xml biçimi dosyası
Aşağıdaki örnek bcp bir xml biçimi dosyası oluşturmak için myTestFormatFiles 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 bcp ile biçimi oluştur Bu seçeneği biçim dosyası, Windows komut istemi istemine girin:
bcp AdventureWorks2008R2..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çimi dosyası
Aşağıdaki örnek bcp bir xml biçimi dosyası oluşturmak için oluşturmak için myTestFormatFiles 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 bcp ile biçimi oluştur Bu seçeneği biçim dosyası, Windows komut istemi istemine girin:
bcp AdventureWorks2008R2..MyTestFormatFiles format nul -c -t, -x -f myTestFormatFiles.Xml -T
BCP kullanma
Aşağıdaki örnek bcp için toplu alma verileri myTestFormatFiles-c.Dat veri dosyasına HumanResources.myTestFormatFiles , tablo AdventureWorks2008R2 örnek veritabanı.Bu örnek xml kullanan biçim dosyası, MyTestFormatFiles.Xml.Örnek veri dosyasını almadan önce varolan tüm tablo satırları siler.
Windows komut istemi istemine girin:
bcp AdventureWorks2008R2..myTestFormatFiles in C:\myTestFormatFiles-c.Dat -f C:\myTestFormatFiles.Xml -T
Not
Bu komut hakkında daha fazla bilgi için bkz: bcp Yardımcı Programı.
bulk INSERT kullanma
Toplu alma verileri için bulk INSERT aşağıdaki örnek kullanır myTestFormatFiles-c.Dat veri dosyasına HumanResources.myTestFormatFiles , tablo AdventureWorks2008R2 örnek veritabanı.Bu örnek xml olmayan kullanır biçim dosyası, MyTestFormatFiles.Fmt.Örnek veri dosyasını almadan önce varolan tüm tablo satırları siler.
De SQL Server Management Studio yürütmek Query Editor:
USE AdventureWorks2008R2;
GO
DELETE myTestFormatFiles;
GO
BULK INSERT myTestFormatFiles
FROM 'C:\myTestFormatFiles-c.Dat'
WITH (FORMATFILE = 'C:\myTestFormatFiles.Fmt');
GO
SELECT * FROM myTestFormatFiles;
GO
Not
Bu deyim hakkında daha fazla bilgi için bkz: BULK INSERT (Transact-SQL).
openrowset toplu satır kümesi sağlayıcı kullanarak
Aşağıdaki örnek INSERT ... SELECT * FROM OPENROWSET(BULK...) için toplu alma verileri myTestFormatFiles-c.Dat veri dosyasına HumanResources.myTestFormatFiles , tablo AdventureWorks2008R2 örnek veritabanı.Bu örnek xml kullanan biçim dosyası, MyTestFormatFiles.Xml.Örnek veri dosyasını almadan önce varolan tüm tablo satırları siler.
De SQL Server Management Studio yürütmek Query Editor:
USE AdventureWorks2008R2;
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 kullanmayı bitirdiğinde, aşağıdaki deyim kullanarak bırakabilir:
DROP TABLE myTestFormatFiles
Not
openrowset bulk yan tümce tümce tümce hakkında daha fazla bilgi için bkz: OPENROWSET (Transact-SQL).