Memformat file untuk mengimpor atau mengekspor data (SQL Server)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)
Saat Anda mengimpor data secara massal ke tabel SQL Server atau mengekspor data secara massal dari tabel, Anda bisa menggunakan file format untuk menyimpan semua informasi format yang diperlukan untuk mengekspor massal atau mengimpor data secara massal. Ini termasuk informasi format untuk setiap bidang dalam file data yang relatif terhadap tabel tersebut.
SQL Server mendukung dua jenis file format: format XML dan file format non-XML. File format non-XML dan file format XML berisi deskripsi setiap bidang dalam file data, dan file format XML juga berisi deskripsi kolom tabel yang sesuai. Umumnya, file format XML dan non-XML dapat dipertukarkan. Namun, kami sarankan Anda menggunakan sintaks XML untuk file format baru karena memberikan beberapa keuntungan daripada file format non-XML. Untuk informasi selengkapnya, lihat File Format XML (SQL Server).
Catatan
Sintaks ini, termasuk penyisipan massal, tidak didukung di Azure Synapse Analytics. Di Azure Synapse Analytics dan integrasi platform database cloud lainnya, selesaikan pergerakan data melalui pernyataan COPY di Azure Data Factory, atau dengan menggunakan pernyataan T-SQL seperti COPY INTO dan PolyBase.
Manfaat format file
File format menyediakan sistem fleksibel untuk menulis file data yang memerlukan sedikit atau tanpa pengeditan untuk mematuhi format data lain atau membaca file data dari perangkat lunak lain.
Anda dapat mengimpor data secara massal tanpa harus menambahkan atau menghapus data yang tidak perlu atau menyusun ulang data yang ada dalam file data. File format dapat berguna ketika ketidakcocokan ada di antara bidang dalam file data dan kolom dalam tabel.
Contoh file format
Contoh berikut menunjukkan tata letak file format non-XML dan file format XML. File format ini sesuai dengan HumanResources.myTeam
tabel dalam AdventureWorks2022
database sampel. Tabel ini berisi empat kolom: EmployeeID
, , Name
, Title
dan ModifiedDate
.
Catatan
Untuk informasi tentang tabel ini dan cara membuatnya, lihat Tabel sampel HumanResources.myTeam (SQL Server).
J. Menggunakan file format non-XML
File format non-XML berikut menggunakan format data asli SQL Server untuk HumanResources.myTeam
tabel. File format ini dibuat dengan menggunakan perintah berikut bcp
.
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T
Perintah bcp
default ke instans lokal default SQL Server dengan Autentikasi Windows. Anda dapat menentukan instans lain dan informasi masuk seperti yang diinginkan, untuk informasi selengkapnya, lihat Utilitas bcp. Misalnya, untuk menentukan server jarak jauh bernama instans dengan Autentikasi Windows, gunakan:
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.Fmt -n -T -S servername/instancename
Isi file format ini adalah sebagai berikut, dimulai dengan nomor versi utama SQL Server, dan informasi metadata tabel.
14.0
4
1 SQLSMALLINT 0 2 "" 1 EmployeeID ""
2 SQLNCHAR 2 100 "" 2 Name SQL_Latin1_General_CP1_CI_AS
3 SQLNCHAR 2 100 "" 3 Title SQL_Latin1_General_CP1_CI_AS
4 SQLNCHAR 2 100 "" 4 Background SQL_Latin1_General_CP1_CI_AS
Untuk informasi selengkapnya, lihat Menggunakan file format Non-XML (SQL Server).
B. Menggunakan file format XML
File format XML berikut menggunakan format data asli SQL Server untuk HumanResources.myTeam
tabel. File format ini dibuat dengan menggunakan perintah berikut bcp
.
bcp AdventureWorks2022.HumanResources.myTeam format nul -f myTeam.xml -x -n -T
File format berisi:
<?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="NativePrefix" LENGTH="1"/>
<FIELD ID="2" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="3" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
<FIELD ID="4" xsi:type="NCharPrefix" PREFIX_LENGTH="2" MAX_LENGTH="100" COLLATION="SQL_Latin1_General_CP1_CI_AS"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="EmployeeID" xsi:type="SQLSMALLINT"/>
<COLUMN SOURCE="2" NAME="Name" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="Title" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="Background" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>
Untuk informasi selengkapnya, lihat File Format XML (SQL Server).
Kapan file format diperlukan?
File format biasanya diperlukan dalam keadaan berikut:
Saat Anda menggunakan
INSERT ... SELECT * FROM OPENROWSET(BULK...)
pernyataan.Untuk situasi impor massal yang kompleks menggunakan bcp atau
BULK INSERT
.File data yang sama digunakan sebagai sumber untuk beberapa tabel yang memiliki skema berbeda.
File data memiliki jumlah bidang berbeda yang memiliki kolom tabel target; misalnya:
- Tabel target berisi setidaknya satu kolom yang nilai defaultnya ditentukan atau
NULL
diizinkan. - Pengguna tidak memiliki
SELECT
/INSERT
izin pada satu atau beberapa kolom dalam tabel. - Satu file data digunakan dengan dua tabel atau lebih yang memiliki skema berbeda.
- Tabel target berisi setidaknya satu kolom yang nilai defaultnya ditentukan atau
Urutan kolom berbeda untuk file data dan tabel.
Karakter penghentian atau panjang awalan berbeda di antara kolom file data.
Catatan
Dengan tidak adanya file format, jika perintah bcp menentukan sakelar format data (-n
, , -c
, -w
atau -N
) atau BULK INSERT
operasi menentukan DATAFILETYPE
opsi, format data yang ditentukan digunakan sebagai metode default untuk menginterpretasikan bidang file data.
Tugas terkait
- Menggunakan file asli/format BCP vs file teks dan BOM
- Menggunakan file format Non-XML (SQL Server)
- File Format XML (SQL Server)
- Format data untuk impor massal atau ekspor massal (SQL Server)
- Membuat file format dengan bcp (SQL Server)
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk