Ekinlikler
31 Mar 23 - 2 Nis 23
En büyük SQL, Fabric ve Power BI öğrenme etkinliği. 31 Mart – 2 Nisan. 400 ABD doları tasarruf etmek için FABINSIDER kodunu kullanın.
Bugün kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örnek
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Veri dosyası, tablodaki ilgili sütunlardan farklı bir sırada düzenlenmiş alanlar içerebilir. Bu makalede, alanları tablo sütunlarından farklı bir sırada düzenlenmiş bir veri dosyasına uyarlanmış XML olmayan ve XML biçimindeki dosyalar sunulmaktadır. Değiştirilen biçim dosyası, veri alanlarını ilgili tablo sütunlarıyla eşler. Ek bilgi için 'ı inceleyin; ile bcp (SQL Server) biçim dosyası oluşturun.
XML olmayan veya XML biçimindeki bir dosya, bcp yardımcı programı komutu, BULK INSERT deyimi veya INSERT ... SELECT * FROM OPENROWSET deyimi kullanılarak tabloya veri dosyasını toplu içeri aktarmak için kullanılabilir. Daha fazla bilgi için bkz. Verileri toplu içeri aktarmak için biçim dosyası kullanma (SQL Server).
Not
Toplu ekleme de dahil olmak üzere bu söz dizimi Azure Synapse Analytics'te desteklenmez. Azure Synapse Analytics ve diğer bulut veritabanı platformu tümleştirmelerinde, veri aktarımını Azure Data Factory 'da COPY deyiminiveya COPY INTO ve PolyBase gibiT-SQL deyimlerini kullanarak gerçekleştirin.
Bu makaledeki değiştirilmiş biçim dosyaları örnekleri, bu makalenin devamında tanımlanan tablo ve veri dosyasını temel alır.
Aşağıdaki Transact-SQL betiği bir test veritabanı ve myRemap
adlı bir tablo oluşturur.
CREATE DATABASE TestDatabase;
GO
USE TestDatabase;
CREATE TABLE myRemap
(
PersonID SMALLINT,
FirstName VARCHAR (25),
LastName VARCHAR (30),
Gender CHAR (1)
);
Aşağıdaki veriler myRemap
tablosunda gösterildiği gibi FirstName
ve LastName
ters sırada sunar. Not Defteri gibi bir metin düzenleyicisi kullanarak D:\BCP\myRemap.bcp
boş bir dosya oluşturun ve aşağıdaki verileri ekleyin:
1,Grosse,Anthony,M
2,Fatnowna,Alica,F
3,Rosenhain,Stella,F
verileri myRemap.bcp
myRemap
tablosuna toplu olarak aktarmak için biçim dosyasının aşağıdaki eylemleri gerçekleştirmesi gerekir:
PersonID
ilk sütuna eşleyin.LastName
üçüncü sütuna eşleyin.FirstName
ikinci sütuna eşleyin.Gender
dördüncü sütuna eşleyin.Biçim dosyasını oluşturmak için en basit yöntem, bcp yardımcı programınıkullanmaktır. İlk olarak, mevcut tablodan bir temel biçim dosyası oluşturun. İkincisi, temel biçim dosyasını gerçek veri dosyasını yansıtacak şekilde değiştirin.
Ayrıntılı bilgi için SQL Server üzerinde XML dışı biçimli dosyaların kullanımını gözden geçirin. Aşağıdaki komut, myRemap
şemasına bağlı olarak myRemap.fmt
XML olmayan bir biçim dosyası oluşturmak için bcp yardımcı programı kullanır. Buna ek olarak, niteleyici c
karakter verilerini belirtmek için kullanılır, t,
alan sonlandırıcısı olarak virgül belirtmek için kullanılır ve T
tümleşik güvenlik kullanarak güvenilen bir bağlantı belirtmek için kullanılır. Komut istemine aşağıdaki komutu girin:
bcp TestDatabase.dbo.myRemap format nul -c -f D:\BCP\myRemap.fmt -t, -T
Terminoloji hakkında bilgi için bkz. xml olmayan biçim dosyalarının yapısı . Not Defteri'nde D:\BCP\myRemap.fmt
açın ve aşağıdaki değişiklikleri yapın:
myRemap.bcp
'deki veriyle aynı sırada olması gerekir.Değişiklikleri karşılaştırın:
Önce
13.0
4
1 SQLCHAR 0 7 "," 1 PersonID ""
2 SQLCHAR 0 25 "," 2 FirstName SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 30 "," 3 LastName SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 1 "\r\n" 4 Gender SQL_Latin1_General_CP1_CI_AS
Sonra
13.0
4
1 SQLCHAR 0 7 "," 1 PersonID ""
2 SQLCHAR 0 30 "," 3 LastName SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 25 "," 2 FirstName SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 1 "\r\n" 4 Gender SQL_Latin1_General_CP1_CI_AS
Değiştirilen biçim dosyası şimdi aşağıdakileri yansıtır:
myRemap.bcp
'daki ilk veri alanı ilk sütuna eşlenir myRemap.. PersonID
myRemap.bcp
'daki ikinci veri alanı üçüncü sütuna eşlenir myRemap.. LastName
myRemap.bcp
'daki üçüncü veri alanı ikinci sütuna eşlenir myRemap.. FirstName
myRemap.bcp
'daki dördüncü veri alanı dördüncü sütunla eşlenir myRemap.. Gender
Ayrıntılı bilgi için XML Biçim Dosyaları (SQL Server) gözden geçirin. Aşağıdaki komut, bcp yardımcı programı kullanarak myRemap
şemasını temel alan myRemap.xml
bir xml biçimi dosyası oluşturur. Buna ek olarak, niteleyici c
karakter verilerini belirtmek için kullanılır, t,
alan sonlandırıcısı olarak virgül belirtmek için kullanılır ve T
tümleşik güvenlik kullanarak güvenilen bir bağlantı belirtmek için kullanılır. xml tabanlı biçim dosyası oluşturmak için x
niteleyici kullanılmalıdır. Komut istemine aşağıdaki komutu girin:
bcp TestDatabase.dbo.myRemap format nul -c -x -f D:\BCP\myRemap.xml -t, -T
XML biçim dosyaları için Şema söz dizimini terminoloji için gözden geçirin. Not Defteri'nde D:\BCP\myRemap.xml
açın ve aşağıdaki değişiklikleri yapın:
<FIELD>
öğelerinin biçim dosyasında bildirildiği sıra, bu alanların veri dosyasında görünme sırasıdır. Bu nedenle, 2 ve 3 kimlik özniteliklerine sahip <FIELD>
öğelerinin sırasını tersine çevirin.
<FIELD>
Kimliği öznitelik değerlerinin sıralı olduğundan emin olun.
<ROW> öğesindeki <COLUMN>
öğelerinin sırası, toplu işlemin bunları hedefe gönderme sırasını tanımlar. XML biçim dosyası, her <COLUMN>
öğesine toplu içeri aktarma işleminin hedef tablosundaki sütunla ilişkisi olmayan bir yerel ad atar.
<COLUMN>
öğelerinin sırası, <RECORD> tanımındaki <FIELD>
öğelerinin sıralamasından bağımsızdır. Her <COLUMN>
öğesi bir <FIELD>
öğesine karşılık gelir (kimliği <COLUMN>
öğesinin SOURCE özniteliğinde belirtilir). Bu nedenle, <COLUMN>
SOURCE değerleri düzeltme gerektiren tek özniteliklerdir. 2 ve 3 <COLUMN>
SOURCE özniteliklerinin sırasını tersine çevirin.
Değişiklikleri karşılaştırın:
Önce
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://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="25" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="1" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="PersonID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="FirstName" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="3" NAME="LastName" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="4" NAME="Gender" xsi:type="SQLCHAR"/>
</ROW>
</BCPFORMAT>
Sonra
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://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="30" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="," MAX_LENGTH="25" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="1" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="PersonID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="3" NAME="FirstName" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="2" NAME="LastName" xsi:type="SQLVARYCHAR"/>
<COLUMN SOURCE="4" NAME="Gender" xsi:type="SQLCHAR"/>
</ROW>
</BCPFORMAT>
Değiştirilen biçim dosyası şimdi aşağıdakileri yansıtır:
myRemap.. PersonID
ilk tablo sütununa eşlenirmyRemap.. LastName
myRemap.. FirstName
) yeniden eşlenirmyRemap.. Gender
Aşağıdaki örneklerde daha önce oluşturulan veritabanı, veri dosyası ve biçim dosyaları kullanılır.
Komut istemine aşağıdaki komutu girin.
bcp TestDatabase.dbo.myRemap IN D:\BCP\myRemap.bcp -f D:\BCP\myRemap.fmt -T
Komut istemine aşağıdaki komutu girin.
bcp TestDatabase.dbo.myRemap IN D:\BCP\myRemap.bcp -f D:\BCP\myRemap.xml -T
Aşağıdaki Transact-SQL betiğini çalıştırın.
USE TestDatabase;
GO
TRUNCATE TABLE myRemap;
BULK INSERT dbo.myRemap FROM 'D:\BCP\myRemap.bcp'
WITH (FORMATFILE = 'D:\BCP\myRemap.fmt');
GO
-- review results
SELECT *
FROM TestDatabase.dbo.myRemap;
Aşağıdaki Transact-SQL betiğini çalıştırın.
USE TestDatabase;
GO
TRUNCATE TABLE myRemap;
BULK INSERT dbo.myRemap FROM 'D:\BCP\myRemap.bcp'
WITH (FORMATFILE = 'D:\BCP\myRemap.xml');
GO
-- review results
SELECT *
FROM TestDatabase.dbo.myRemap;
Aşağıdaki Transact-SQL betiğini çalıştırın.
USE TestDatabase;
GO
TRUNCATE TABLE myRemap;
INSERT INTO dbo.myRemap
SELECT *
FROM OPENROWSET (
BULK 'D:\BCP\myRemap.bcp',
FORMATFILE = 'D:\BCP\myRemap.fmt'
) AS t1;
GO
-- review results
SELECT *
FROM TestDatabase.dbo.myRemap;
Aşağıdaki Transact-SQL betiğini çalıştırın.
USE TestDatabase;
GO
TRUNCATE TABLE myRemap;
INSERT INTO dbo.myRemap
SELECT *
FROM OPENROWSET (
BULK 'D:\BCP\myRemap.bcp',
FORMATFILE = 'D:\BCP\myRemap.xml'
) AS t1;
GO
-- review results
SELECT *
FROM TestDatabase.dbo.myRemap;
Ekinlikler
31 Mar 23 - 2 Nis 23
En büyük SQL, Fabric ve Power BI öğrenme etkinliği. 31 Mart – 2 Nisan. 400 ABD doları tasarruf etmek için FABINSIDER kodunu kullanın.
Bugün kaydolunEğitim
Modül
Bu modülde bir metin dosyasından, CSV dosyasından, XML dosyasından ve JavaScript Nesne Gösterimi (JSON) dosyasından verilerin nasıl içeri aktarılacağını açıklanmaktadır.
Belgeler
bcp ile biçim dosyası oluşturma (SQL Server) - SQL Server
SQL Server tablosunu toplu olarak içeri veya dışarı aktardığınızda, biçim dosyası veri dosyalarının çok az düzenlemeyle yazılmasına veya diğer programlardan veri dosyalarının okunmasına olanak tanır.
Veri alanını atlamak için biçim dosyası kullanma - SQL Server
Tablo sütunlarından daha fazla alanı olan bir veri dosyasıyla biçim dosyası kullanabilirsiniz. Tablo sütunlarını ilgili veri alanlarıyla eşler ve ek alanları yoksayar.
Verileri toplu içeri aktarmak için biçim dosyası kullanma - SQL Server
SQL Server'da toplu içeri aktarma işlemlerinde bir biçim dosyası kullanabilirsiniz. Biçim dosyası, veri dosyasının alanlarını tablonun sütunlarına eşler.
Verileri içeri ve dışarı aktarmak için dosyaları biçimlendirme - SQL Server
SQL Server tablosuna toplu içeri aktardığınızda veya bir tablodan toplu dışarı aktardığınızda, biçim dosyası tabloya göre bir veri dosyası için alan biçimi bilgilerini depolayabilir.