Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Warehouse di Microsoft Fabric
Format karakter disarankan ketika Anda mengekspor data secara massal ke file teks yang akan digunakan dalam program lain atau ketika Anda mengimpor data secara massal dari file teks yang dihasilkan oleh program lain.
Format karakter menggunakan format data karakter untuk semua kolom. Menyimpan informasi dalam format karakter berguna ketika data digunakan dengan program lain, seperti spreadsheet, atau ketika data perlu disalin ke dalam instans SQL Server dari vendor database lain seperti Oracle.
Catatan
Saat Anda mentransfer data secara massal antara instans SQL Server dan file data berisi data karakter Unicode tetapi tidak ada karakter yang diperluas atau DBCS, gunakan format karakter Unicode. Untuk informasi selengkapnya, lihat Menggunakan format karakter Unicode untuk mengimpor atau mengekspor data (SQL Server).
Pertimbangan untuk menggunakan format karakter
Saat menggunakan format karakter, pertimbangkan:
Secara bawaan, utilitas bcp memisahkan bidang data karakter dengan karakter tab dan mengakhiri rekaman dengan karakter baris baru. Untuk informasi tentang cara menentukan terminator alternatif, lihat Menentukan terminator bidang dan baris (SQL Server).
Secara default, sebelum ekspor massal atau impor data mode karakter, konversi berikut dilakukan:
Arah operasi besar-besaran Konversi Ekspor Mengonversi data menjadi representasi karakter. Jika diminta secara eksplisit, data dikonversi ke halaman kode yang diminta untuk kolom karakter. Jika tidak ada halaman kode yang ditentukan, data karakter dikonversi dengan menggunakan halaman kode OEM komputer klien. Impor Mengonversi data karakter menjadi representasi asli, jika perlu, dan menerjemahkan data karakter dari halaman kode klien ke halaman kode dari satu atau beberapa kolom target. Untuk mencegah hilangnya karakter yang diperluas selama konversi, gunakan format karakter Unicode atau tentukan halaman kode.
Data sql_variant apa pun yang disimpan dalam file format karakter disimpan tanpa metadata. Setiap nilai data dikonversi ke format karakter , sesuai dengan aturan konversi data implisit. Saat diimpor ke kolom sql_variant , data diimpor sebagai karakter. Saat diimpor ke kolom dengan jenis data selain sql_variant, data dikonversi dari karakter dengan menggunakan konversi implisit. Untuk informasi selengkapnya tentang konversi data, lihat konversi jenis data (Mesin Database).
Utilitas bcp mengekspor nilai uang sebagai file data format karakter dengan empat digit setelah titik desimal dan tanpa simbol pengelompokan digit seperti pemisah koma. Misalnya, kolom uang yang berisi nilai
1,234,567.123456diekspor secara massal ke file data sebagai string karakter1234567.1235.
Opsi perintah untuk format karakter
Anda dapat mengimpor data format karakter ke dalam tabel menggunakan bcp, BULK INSERT (Transact-SQL), atau OPENROWSET (BULK). Untuk perintah bcp atau pernyataan BULK INSERT (Transact-SQL), Anda dapat menentukan format data dalam pernyataan. Untuk pernyataan OPENROWSET (BULK), Anda harus menentukan format data dalam file format.
Format karakter didukung oleh opsi perintah berikut:
| Perintah | Opsi | Deskripsi |
|---|---|---|
bcp |
-c |
Memungkinkan utilitas bcp untuk menggunakan data karakter. 1 |
BULK INSERT |
DATAFILETYPE ='char' |
Gunakan format karakter saat mengimpor data secara massal. |
OPENROWSET |
Tidak Berlaku | Harus menggunakan file format |
1 Untuk memuat data karakter (-c) ke format yang kompatibel dengan versi klien SQL Server yang lebih lama, gunakan sakelar -V . Untuk informasi selengkapnya, lihat Mengimpor data format bawaan dan karakter dari versi SQL Server yang lebih lama.
Catatan
Atau, Anda dapat menentukan pemformatan berdasarkan per bidang dalam file format. Untuk informasi selengkapnya, lihat Format file untuk mengimpor atau mengekspor data (SQL Server).
Contoh kondisi pengujian
Contoh dalam artikel ini didasarkan pada tabel dan file format berikut.
Tabel sampel
Skrip berikut membuat database pengujian, tabel bernama myChar dan mengisi tabel dengan beberapa nilai awal. Jalankan Transact-SQL berikut di Microsoft SQL Server Management Studio (SSMS):
CREATE DATABASE TestDatabase;
GO
USE TestDatabase;
CREATE TABLE dbo.myChar
(
PersonID SMALLINT NOT NULL,
FirstName VARCHAR (25) NOT NULL,
LastName VARCHAR (30) NOT NULL,
BirthDate DATE,
AnnualSalary MONEY
);
-- Populate table
INSERT TestDatabase.dbo.myChar
VALUES (1, 'Anthony', 'Grosse', '1980-02-23', 65000.00),
(2, 'Alica', 'Fatnowna', '1963-11-14', 45000.00),
(3, 'Stella', 'Rossenhain', '1992-03-02', 120000.00);
-- Review data
SELECT * FROM TestDatabase.dbo.myChar;
Contoh file format non-XML
SQL Server mendukung dua jenis file format: format non-XML dan format XML. Format non-XML adalah format asli yang didukung oleh versi SQL Server sebelumnya. Untuk informasi selengkapnya, lihat Menggunakan file format Non-XML (SQL Server). Perintah berikut menggunakan utilitas bcp untuk menghasilkan file format non-XML, myChar.fmt, berdasarkan skema myChar. Untuk menggunakan perintah bcp untuk membuat file format, tentukan argumen FORMAT dan gunakan nul alih-alih jalur file data. Opsi format juga memerlukan opsi -f. Selain itu, untuk contoh ini, c digunakan untuk menentukan data karakter, dan T digunakan untuk menentukan koneksi tepercaya menggunakan integrasi keamanan.
Pada prompt perintah, masukkan perintah berikut:
bcp TestDatabase.dbo.myChar format nul -f D:\BCP\myChar.fmt -T -c
REM Review file
Notepad D:\BCP\myChar.fmt
Penting
Pastikan file format non-XML Anda berakhir dengan return\line feed pengangkutan. Jika tidak, Anda mungkin menerima pesan kesalahan berikut:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file
Contoh
Contoh berikut menggunakan database dan format file yang dibuat sebelumnya dalam artikel ini.
Menggunakan format bcp dan karakter untuk mengekspor data
-c sakelar dan perintah OUT.
File data yang dibuat dalam contoh ini digunakan dalam semua contoh berikutnya.
Pada prompt perintah, masukkan perintah berikut:
bcp TestDatabase.dbo.myChar OUT D:\BCP\myChar.bcp -T -c
REM Review results
NOTEPAD D:\BCP\myChar.bcp
Menggunakan format bcp dan karakter untuk mengimpor data tanpa file format
Perintah sakelar -c dan IN. Pada prompt perintah, masukkan perintah berikut:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myChar;"
REM Import data
bcp TestDatabase.dbo.myChar IN D:\BCP\myChar.bcp -T -c
REM Review results
SQLCMD -Q "SELECT * FROM TestDatabase.dbo.myChar;"
Menggunakan format bcp dan karakter untuk mengimpor data dengan file format non-XML
Tombol -c, -f, dan perintah IN. Pada prompt perintah, masukkan perintah berikut:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myChar;"
REM Import data
bcp TestDatabase.dbo.myChar IN D:\BCP\myChar.bcp -f D:\BCP\myChar.fmt -T
REM Review results
SQLCMD -Q "SELECT * FROM TestDatabase.dbo.myChar;"
Gunakan BULK INSERT dan format karakter tanpa menggunakan file format.
Argumen DATAFILETYPE. Jalankan Transact-SQL berikut di Microsoft SQL Server Management Studio (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myChar; -- for testing
BULK INSERT TestDatabase.dbo.myChar FROM 'D:\BCP\myChar.bcp'
WITH (DATAFILETYPE = 'Char');
-- review results
SELECT * FROM TestDatabase.dbo.myChar;
Gunakan BULK INSERT dan format karakter dengan file format non-XML
Ini adalah contoh argumen FORMATFILE. Jalankan Transact-SQL berikut di Microsoft SQL Server Management Studio (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myChar; -- for testing
BULK INSERT TestDatabase.dbo.myChar FROM 'D:\BCP\myChar.bcp'
WITH (FORMATFILE = 'D:\BCP\myChar.fmt');
-- review results
SELECT * FROM TestDatabase.dbo.myChar;
Gunakan OPENROWSET dan format karakter dengan file format non-XML
Contoh argumen FORMATFILE. Jalankan Transact-SQL berikut di Microsoft SQL Server Management Studio (SSMS):
TRUNCATE TABLE TestDatabase.dbo.myChar; -- for testing
INSERT INTO TestDatabase.dbo.myChar
SELECT * FROM OPENROWSET (
BULK 'D:\BCP\myChar.bcp',
FORMATFILE = 'D:\BCP\myChar.fmt'
) AS t1;
-- review results
SELECT * FROM TestDatabase.dbo.myChar;
Tugas terkait
Untuk menggunakan format data untuk impor massal atau ekspor massal:
- Mengimpor data format asli dan karakter dari versi SQL Server yang lebih lama
- Menggunakan format asli untuk mengimpor atau mengekspor data (SQL Server)
- Gunakan format karakter Unicode untuk mengimpor atau mengekspor data (SQL Server)
- Menggunakan format asli Unicode untuk mengimpor atau mengekspor Data (SQL Server)