Aracılığıyla paylaş


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 notÖ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'

bcpin

-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).