Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Bu makalede, toplu içeri aktarma işlemlerinde biçim dosyasının kullanımı gösterilmektedir. Biçim dosyası, veri dosyasının alanlarını tablonun sütunlarına eşler. Ek bilgi için 'ı inceleyin; ile bcp (SQL Server) biçim dosyası oluşturun.
Önkoşullar
SQL Server örneğinizde T-SQL komutlarını çalıştırmak için SQL Server Management Studio 'yu (SSMS),Visual Studio Code için MSSQL uzantısını, sqlcmd'yi veya sık kullandığınız T-SQL sorgulama aracını kullanın.
Biçim dosyasının Unicode karakter veri dosyasıyla çalışması için tüm giriş alanlarının Unicode metin dizeleri (sabit boyutlu veya karakterle sonlandırılan Unicode dizeleri) olması gerekir.
XML belgelerinin (SQL Server) toplu içeri ve dışarı aktarma örnekleri verilerini toplu olarak dışarı veya içeri aktarmak için, biçim dosyanızda aşağıdaki veri türlerinden birini kullanın:
- SQLCHAR veya SQLVARCHAR (veriler istemci kodu sayfasında veya harmanlama tarafından ima edilen kod sayfasında gönderilir)
- SQLNCHAR veya SQLNVARCHAR (veriler Unicode olarak gönderilir)
- SQLBINARY veya SQLVARBIN (veriler dönüştürme olmadan gönderilir).
Azure SQL Veritabanı ve Azure Synapse Analytics yalnızca bcpdestekler. Ek bilgi için bkz.
Toplu ekleme dahil olmak üzere bu söz dizimi Azure Synapse Analytics'te desteklenmez. Azure Synapse Analytics ve diğer bulut veritabanı platformu tümleştirmelerinde, Azure Data Factory 'da COPY deyiminiile veya COPY INTO ve PolyBase gibi T-SQL deyimlerinikullanarak veri taşımayı gerçekleştirin.
Örnek test koşulları
Bu konudaki biçim dosyalarına örnek olarak aşağıda tanımlanan tablo ve veri dosyası temel alınmıştır.
Örnek tablo
Aşağıdaki betik bir test veritabanı ve myFirstImportadlı bir tablo oluşturur. Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
CREATE DATABASE TestDatabase;
GO
USE TestDatabase;
CREATE TABLE dbo.MyFirstImport (
PersonID smallint,
FirstName varchar(25),
LastName varchar(30),
BirthDate Date
);
Örnek veri dosyası
Not Defteri'ni kullanarak boş bir dosya D:\BCP\myFirstImport.bcp oluşturun ve aşağıdaki verileri ekleyin:
1,Anthony,Grosse,1980-02-23
2,Alica,Fatnowna,1963-11-14
3,Stella,Rosenhain,1992-03-02
Alternatif olarak, veri dosyasını oluşturmak ve doldurmak için aşağıdaki PowerShell betiğini yürütebilirsiniz:
Clear-Host
# revise directory as desired
$dir = 'D:\BCP\';
$bcpFile = Join-Path -Path $dir -ChildPath 'MyFirstImport.bcp';
# Confirm directory exists
IF ((Test-Path -Path $dir) -eq 0)
{
Write-Host "The path $dir does not exist; please create or modify the directory.";
RETURN;
};
# Clear content, will error if file does not exist, can be ignored
Clear-Content -Path $bcpFile -ErrorAction SilentlyContinue;
# Add data
Add-Content -Path $bcpFile -Value '1,Anthony,Grosse,1980-02-23';
Add-Content -Path $bcpFile -Value '2,Alica,Fatnowna,1963-11-14';
Add-Content -Path $bcpFile -Value '3,Stella,Rosenhain,1992-03-02';
# Review content
Get-Content -Path $bcpFile;
Notepad.exe $bcpfile;
Biçim dosyalarını oluşturma
SQL Server iki tür biçim dosyasını destekler: XML dışı biçim ve XML biçimi. XML olmayan biçim, SQL Server'ın önceki sürümleri tarafından desteklenen özgün biçimdir.
Kod örneğinin yerel dosya konumlarını makinenizdeki bir dosya konumuyla değiştirin.
XML olmayan bir biçim dosyası oluşturma
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, şemasına göre myFirstImport.fmtxml olmayan bir biçim dosyası oluşturmak için myFirstImport kullanır.
- Biçim dosyası oluşturmak için bcp komutunu kullanmak amacıyla bağımsız değişkeni
formatolarak belirtin ve veri dosyası yolu yerinenulkullanın. - Biçim seçeneği de bu seçeneği gerektirir
-f. -
ckarakter verilerini belirtmek için kullanılır -
t,virgül, bir alan ayırıcı olarak belirtmek için kullanılır. -
Ttümleşik güvenlik kullanarak güvenilir bir bağlantı belirtmek için kullanılır.
Komut istemine aşağıdaki komutu girin:
bcp TestDatabase.dbo.myFirstImport format nul -c -f D:\BCP\myFirstImport.fmt -t, -T
REM Review file
Notepad D:\BCP\myFirstImport.fmt
XML olmayan biçim dosyanız D:\BCP\myFirstImport.fmt aşağıdaki gibi görünmelidir:
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 11 "\r\n" 4 BirthDate ""
Önemli
XML olmayan biçimli dosyanızın "carriage return\line feed" karakterleriyle sona erdiğinden emin olun. Aksi takdirde büyük olasılıkla aşağıdaki hata iletisini alırsınız:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file
XML biçim dosyası oluşturma
Ayrıntılı bilgi için XML biçim dosyalarını (SQL Server) gözden geçirin. Aşağıdaki komut, bcp yardımcı programı kullanarak myFirstImport.xmlşemasını temel alan myFirstImportbir xml biçimi dosyası oluşturur.
- Biçim dosyası oluşturmak için bcp komutunu kullanmak amacıyla bağımsız değişkeni
formatolarak belirtin ve veri dosyası yolu yerinenulkullanın. - Biçim seçeneği her zaman seçeneği gerektirir
-f. - XML biçim dosyası oluşturmak için seçeneğini de belirtmeniz
-xgerekir. -
ckarakter verilerini belirtmek için kullanılır -
t,virgül, bir alan ayırıcı olarak belirtmek için kullanılır. -
Ttümleşik güvenlik kullanarak güvenilir bir bağlantı belirtmek için kullanılır.
Komut istemine aşağıdaki komutu girin:
bcp TestDatabase.dbo.myFirstImport format nul -c -x -f D:\BCP\myFirstImport.xml -t, -T
REM Review file
Notepad D:\BCP\myFirstImport.xml
XML biçim dosyanız D:\BCP\myFirstImport.xml aşağıdaki gibi görünmelidir:
<?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="11"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="PersonID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="FirstName" xsi:type="SQLVARCHAR"/>
<COLUMN SOURCE="3" NAME="LastName" xsi:type="SQLVARCHAR"/>
<COLUMN SOURCE="4" NAME="BirthDate" xsi:type="SQLDATE"/>
</ROW>
</BCPFORMAT>
Verileri toplu içeri aktarmak için biçim dosyası kullanma
Aşağıdaki örneklerde yukarıda oluşturulan veritabanı, veri dosyası ve biçim dosyaları kullanılır.
bcp kullanma ve XML olmayan biçim dosyalarını kullanma (SQL Server)
Komut istemine aşağıdaki komutu girin:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.MyFirstImport;"
REM Import data
bcp TestDatabase.dbo.myFirstImport IN D:\BCP\myFirstImport.bcp -f D:\BCP\myFirstImport.fmt -T
REM Review results
SQLCMD -Q "SELECT * FROM TestDatabase.dbo.MyFirstImport"
bcp ve XML biçim dosyalarını kullanma (SQL Server)
Komut istemine aşağıdaki komutu girin:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.MyFirstImport;"
REM Import data
bcp TestDatabase.dbo.myFirstImport IN D:\BCP\myFirstImport.bcp -f D:\BCP\myFirstImport.xml -T
REM Review results
SQLCMD -Q "SELECT * FROM TestDatabase.dbo.MyFirstImport;"
BULK INSERT (Transact-SQL) ve XML dışı biçimli dosyaları (SQL Server) kullanma
Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
USE TestDatabase;
GO
TRUNCATE TABLE myFirstImport; -- (for testing)
BULK INSERT dbo.myFirstImport
FROM 'D:\BCP\myFirstImport.bcp'
WITH (FORMATFILE = 'D:\BCP\myFirstImport.fmt');
GO
-- review results
SELECT * FROM TestDatabase.dbo.myFirstImport;
BULK INSERT (Transact-SQL) ve XML biçim dosyalarını (SQL Server) kullanma
Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
USE TestDatabase;
GO
TRUNCATE TABLE myFirstImport; -- (for testing)
BULK INSERT dbo.myFirstImport
FROM 'D:\BCP\myFirstImport.bcp'
WITH (FORMATFILE = 'D:\BCP\myFirstImport.xml');
GO
-- review results
SELECT * FROM TestDatabase.dbo.myFirstImport;
OPENROWSET BULK (Transact-SQL) ve XML dışı biçim dosyalarını (SQL Server) kullanma
Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
USE TestDatabase;
GO
TRUNCATE TABLE myFirstImport; -- (for testing)
INSERT INTO dbo.myFirstImport
SELECT *
FROM OPENROWSET (
BULK 'D:\BCP\myFirstImport.bcp',
FORMATFILE = 'D:\BCP\myFirstImport.fmt'
) AS t1;
GO
-- review results
SELECT * FROM TestDatabase.dbo.myFirstImport;
OPENROWSET BULK (Transact-SQL) ve XML biçim dosyalarını (SQL Server) kullanma
Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
USE TestDatabase;
GO
TRUNCATE TABLE myFirstImport; -- (for testing)
INSERT INTO dbo.myFirstImport
SELECT *
FROM OPENROWSET (
BULK 'D:\BCP\myFirstImport.bcp',
FORMATFILE = 'D:\BCP\myFirstImport.xml'
) AS t1;
GO
-- review results
SELECT * FROM TestDatabase.dbo.myFirstImport;
Diğer örnekler
- bcp (SQL Server) ile biçim dosyası oluşturma
- SQL Server'da Bir Tablo Sütununu Atlamak için Biçim Dosyası Kullanma
- Bir veri alanını atlamak için biçim dosyası kullanma (SQL Server)
- Tablo sütunlarını veri dosyası alanlarına (SQL Server) eşlemek için biçim dosyası kullanma