Share via


(SQL Server) Veri Al toplu için bir biçim dosyası kullanma

Bu konuda toplu alma işlemleri bir biçim dosyasında kullanımını göstermektedir. Biçim dosyasını, tablo sütunlar veri dosyası alanlarını eşleştirir. Olmayan xml ya da xml biçimi dosyası toplu alma verileri kullanarak kullanabilirsiniz bir bcpkomutunu veya bulk INSERT veya Ekle... SEÇİN * OPENROWSET(BULK...) DAN Transact-SQLkomut.

Önemli notÖnemli

Biçim dosyasını Unicode karakter veri dosyası ile çalışmak tüm giriş alanları Unicode metin dizeleri (yani, sabit boyut veya karakter biten Unicode dizeleri) olmalıdır.

[!NOT]

Biçimi dosyaları ile tanımıyorsanız bkz Olmayan xml biçimi dosyaları (SQL Server)ve xml biçimi dosyaları (SQL Server).

Toplu alma komutları için biçim dosya seçenekleri

Her toplu alma komutları için dosya biçimi seçeneği aşağıdaki tabloda özetlenmiştir.

Toplu yükleme komutu

Dosya biçimi seçeneği kullanılarak

TOPLU EKLEME

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), ya OPENROWSET (Transact-SQL).

[!NOT]

Toplu verme veya sqlxml veri almak için biçim dosyanızda aşağıdaki veri türlerinden birini kullanın: sqlchar veya sqlvarychar (verileri istemci kod sayfası veya tarafından harmanlama açık kod sayfası gönderilir), sqlnchar veya sqlnvarchar, (veri Unicode olarak gönderilir) veya SQLBINARY veya SQLVARYBIN (verileri herhangi bir dönüştürme olmadan gönderilir).

Örnekler

Bu bölümdeki örnekler kullanarak toplu alma verileri biçim dosyaları kullanma göstermek bcpbulk INSERT ve komutu Ekle... SEÇİN * from openrowset(bulk...) deyimleri. Toplu alma örneklerinden çalıştırmadan önce örnek tablo ve veri dosyası biçimi dosyası oluşturmanız gerekir.

Örnek tablo

Örnek bir tablo ismi gerektirir myTestFormatFiles tablo oluşturulabilir AdventureWorks2012örnek veritabanı altında dbo şema. Bu tablo oluşturmak için SQL Server Management Studiosorgu Düzenleyicisi, yürütün:

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

Örnek veri dosyası

Örnekler örnek veri dosyası, kullanma myTestFormatFiles-c.Dat, aşağıdaki kayıtları içerir. Veri dosyası oluşturmak için MicrosoftWindows komut isteminde, komut 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 tekniklerini bir xml biçimi dosyası myTestFormatFiles-f-x-c.Xml, ve diğer örnek olmayan xml biçimi dosyası. Her iki biçimi dosyaları, karakter veri biçimleri ve varsayılan alan Sonlandırıcı (,) kullanın.

Örnek olmayan xml biçimi dosyası

Aşağıdaki örnek bcpbir xml biçimi dosyası oluşturmak myTestFormatFilestablosu. myTestFormatFiles.FmtDosyası aşağıdaki bilgileri içerir:

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 bcpile formatseçenek bu biçimi dosyası oluşturmak Windows komut istemine girin:

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

Biçim dosyasını oluşturma hakkında daha fazla bilgi için bkz: (SQL Server) biçimi dosyası oluşturma.

Örnek xml biçimi dosyası

Aşağıdaki örnek bcpbir xml biçimi dosyası oluşturmak için oluşturmak için myTestFormatFilestablosu. myTestFormatFiles.XmlDosyası aşağıdaki bilgileri içerir:

<?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 bcpile formatseçenek bu biçimi dosyası oluşturmak Windows komut istemine girin:

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

BCP kullanma

Aşağıdaki örnek bcpiçin toplu alma verileri myTestFormatFiles-c.Datveri dosyasına HumanResources.myTestFormatFilesörnek veritabanındaki tablo. Bu örnek, bir xml biçimi dosyası kullanır MyTestFormatFiles.Xml. Örneğin, veri dosyasını almadan önce herhangi bir varolan tablo satırları siler.

Windows komut istemine girin:

bcp AdventureWorks2012..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

Aşağıdaki örnek için veri toplu alma bulk INSERT kullanan myTestFormatFiles-c.Datveri dosyasına HumanResources.myTestFormatFilesiçinde masa AdventureWorks2012örnek veritabanı. Bu örnek olmayan xml biçimi dosyası kullanır MyTestFormatFiles.Fmt. Örneğin, veri dosyasını almadan önce herhangi bir varolan tablo satırları siler.

De SQL Server Management Studiosorgu Düzenleyicisi, yürütün:

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

[!NOT]

Bu bildirimi 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.Datveri dosyasına HumanResources.myTestFormatFilesiçinde masa AdventureWorksörnek veritabanı. Bu örnek, bir xml biçimi dosyası kullanır MyTestFormatFiles.Xml. Örneğin, veri dosyasını almadan önce herhangi bir varolan tablo satırları siler.

De SQL Server Management Studiosorgu Düzenleyicisi, yürütün:

USE AdventureWorks2012;
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 bitirdikten sonra aşağıdaki deyimi kullanarak bırakabilirsiniz:

DROP TABLE myTestFormatFiles

[!NOT]

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

Ek Örnekler

(SQL Server) biçimi dosyası oluşturma

Sample XML Format Files

(SQL Server) tablo sütun Atla için bir biçim dosyası kullanma

Atla veri alanı (SQL Server) için bir biçim dosyası kullanma

Tablo Sütunlar veri dosyası alanlarını (SQL Server) eşlemek için bir biçim dosyası kullanma

Ayrıca bkz.

Başvuru

BCP yardımcı programı

BULK INSERT (Transact-SQL)

OPENROWSET (Transact-SQL)

Kavramlar

Using a Format File to Map Fields to Columns During Bulk Import (SQL Server)

Olmayan xml biçimi dosyaları (SQL Server)

xml biçimi dosyaları (SQL Server)