(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 |
---|
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' |
bcp … in |
-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
(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
Kavramlar
Using a Format File to Map Fields to Columns During Bulk Import (SQL Server)