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)
Genişletilmiş/DBCS karakterleri içeren bir veri dosyası kullanılarak birden çok SQL Server örneği arasında verilerin toplu aktarımı için Unicode karakter biçimi önerilir. Unicode karakter veri biçimi, işlemi gerçekleştiren istemci tarafından kullanılan kod sayfasından farklı bir kod sayfası kullanılarak verilerin bir sunucudan dışarı aktarılmasını sağlar. Bu gibi durumlarda, Unicode karakter biçiminin kullanılması aşağıdaki avantajlara sahiptir:
Kaynak ve hedef veriler Unicode veri türleriyse, Unicode karakter biçiminin kullanılması tüm karakter verilerini korur.
Kaynak ve hedef veriler Unicode veri türleri değilse, Unicode karakter biçiminin kullanılması, kaynak verilerde hedefte gösterilemeyecek genişletilmiş karakter kaybını en aza indirir.
Unicode karakter biçimini kullanma konusunda dikkat edilmesi gerekenler
Unicode karakter biçimini kullanırken şunları göz önünde bulundurun:
Varsayılan olarak, bcp yardımcı programı karakter-veri alanlarını sekme karakteriyle ayırır ve kayıtları yeni satır karakteriyle sonlandırır. Alternatif sonlandırıcıları belirtme hakkında bilgi için bkz. Alan ve satır sonlandırıcılarını belirtme (SQL Server).
Unicode karakter biçimi veri dosyasında depolanan sql_variant verileri, karakter biçimindeki veri dosyasında çalıştığı şekilde çalışır, ancak veriler char verileri yerine nchar olarak depolanır. Karakter biçimi hakkında daha fazla bilgi için bkz. Harmanlama ve Unicode desteği.
Unicode karakter biçimi, bcp ve biçim dosyası kullanma konusunda dikkat edilmesi gerekenler
Unicode karakter biçimi veri dosyaları, Unicode dosyaları için kuralları izler. Dosyanın ilk iki baytı onaltılık sayılardır ve 0xFFFE. Bu baytlar, yüksek sıralı baytın dosyada ilk mi yoksa son mu depolandığını belirten bayt sırası işaretleri (BOM) görevi görür. bcp Yardımcı Programı BOM'u yanlış yorumlayabilir ve içeri aktarma işleminizin bir bölümünün başarısız olmasına neden olabilir; benzeri bir hata mesajı alabilirsiniz.
Starting copy...
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]Invalid character value for cast specification
BOM aşağıdaki koşullar altında yanlış yorumlanabilir:
bcp Yardımcı Programı kullanılır ve
-wUnicode karakterini belirtmek için anahtar kullanılırBiçim dosyası kullanılır
Veri dosyasındaki ilk alan karakter dışı
Aşağıdaki geçici çözümlerden herhangi birinin sizin özel durumunuz için kullanılabilir olup olmadığını göz önünde bulundurun:
Biçim dosyası kullanmayın. Bu geçici çözümün bir örneği , Bcp ve Unicode karakter biçimini kullanarak verileri biçim dosyası olmadan içeri aktarma bölümünde verilmiştir.
-cyerine-wanahtarını kullanın.Yerel bir biçim kullanarak verileri yeniden dışarı aktarın,
BULK INSERT (Transact-SQL) veya OPENROWSET (Transact-SQL) kullanın. Bu geçici çözümlerin örnekleri BULK INSERT ve Unicode karakter biçimini XML formatında olmayan dosyada kullanma veOPENROWSET ve Unicode karakter biçimini XML formatında olmayan dosyada kullanma bölümlerinde verilmiştir.
Hedef tabloya ilk kaydı el ile ekleyin ve içeri aktarmanın ikinci kayıttan başlaması için
-F 2seçeneğini kullanın.Veri dosyasına ilk sahte kaydı el ile ekleyin ve ardından içeri aktarmanın ikinci kayıttan başlaması için
-F 2anahtarını kullanın. Bu geçici çözümün bir örneği , VERILERI XML olmayan bir biçim dosyasıyla İçeri Aktarmak için bcp ve Unicode karakter biçimini kullanma bölümünde verilmiştir.İlk sütunun karakter veri türü olduğu bir hazırlama tablosu kullanın veya
Verileri yeniden dışarı aktarın ve ilk veri alanının karakter olması için veri alanı sırasını değiştirin. Ardından veri alanını tablodaki gerçek sıraya yeniden eşlemek için bir biçim dosyası kullanın. Örnek için bkz. Tablo sütunlarını veri dosyası alanlarına (SQL Server) eşlemek için biçim dosyası kullanma.
Unicode karakter biçimi için komut seçenekleri
Bcp, BULK INSERT veya OPENROWSET kullanarak Unicode karakter biçimi verilerini tabloya aktarabilirsiniz. Bcp komutu veya BULK INSERT deyimi için veri biçimini belirtebilirsiniz. OPENROWSET deyimi için, veri biçimini bir biçim dosyasında belirtmeniz gerekir.
Unicode karakter biçimi aşağıdaki komut seçenekleri tarafından desteklenir:
| Komut | Seçenek | Açıklama |
|---|---|---|
bcp |
-w |
Unicode karakter biçimini kullanır. |
BULK INSERT |
DATAFILETYPE ='widechar' |
Verileri toplu içeri aktarırken Unicode karakter biçimini kullanır. |
OPENROWSET |
YOK | Biçim dosyası kullanılmalıdır. |
Not
Alternatif olarak, biçim dosyasında alan başına biçimlendirme belirtebilirsiniz. Daha fazla bilgi için bkz. verileri içeri veya dışarı aktarmak için dosyaları biçimlendirme (SQL Server).
Örnek test koşulları
Bu makaledeki örnekler aşağıdaki tablo ve biçim dosyasını temel alır.
Örnek tablo
Aşağıdaki betik bir test veritabanı ve myWidechar adlı bir tablo oluşturur ve tabloyu bazı başlangıç değerleriyle doldurur. 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.myWidechar
(
PersonID SMALLINT NOT NULL,
FirstName NVARCHAR (25) NOT NULL,
LastName NVARCHAR (30) NOT NULL,
BirthDate DATE,
AnnualSalary MONEY
);
-- Populate table
INSERT TestDatabase.dbo.myWidechar
VALUES (1, N'ϴAnthony', N'Grosse', '02-23-1980', 65000.00),
(2, N'❤Alica', N'Fatnowna', '11-14-1963', 45000.00),
(3, N'☎Stella', N'Rossenhain', '03-02-1992', 120000.00);
-- Review data
SELECT * FROM TestDatabase.dbo.myWidechar;
ÖRNEK XML olmayan biçim dosyası
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. Daha fazla bilgi için bkz. XML dışı biçimli dosyaları kullanma (SQL Server).
Aşağıdaki komut, şemasına bağlı olarak myWidechar.fmtXML olmayan bir biçim dosyası oluşturmak için myWidechar kullanır. Biçim dosyası oluşturmak için bcp komutu kullanmak için format bağımsız değişkenini belirtin ve veri dosyası yolu yerine nul kullanın. Biçim seçeneği de bu seçeneği gerektirir -f . Buna ek olarak, bu örnekte niteleyici c karakter verilerini belirtmek için kullanılır ve T tümleşik güvenlik kullanılarak güvenilen bir bağlantı belirtmek için kullanılır. Komut isteminde aşağıdaki komutları girin:
bcp TestDatabase.dbo.myWidechar format nul -f D:\BCP\myWidechar.fmt -T -w
REM Review file
Notepad D:\BCP\myWidechar.fmt
Önemli
XML olmayan biçimli dosyanızın satır başı\satır beslemesiyle sona erdiğinden emin olun. Aksi takdirde aşağıdaki hata iletisini alabilirsiniz:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]I/O error while reading BCP format file
Örnekler
Aşağıdaki örneklerde veritabanı kullanılır ve daha önce oluşturulan dosyalar biçimlendirilir.
Verileri Dışarı Aktarmak için bcp ve Unicode karakter biçimini kullanma
-w switch ve OUT command komutunu kullanın. Bu örnekte oluşturulan veri dosyası sonraki tüm örneklerde kullanılır. Komut isteminde aşağıdaki komutları girin:
bcp TestDatabase.dbo.myWidechar OUT D:\BCP\myWidechar.bcp -T -w
REM Review results
NOTEPAD D:\BCP\myWidechar.bcp
Biçim dosyası olmadan Verileri İçeri Aktarmak için bcp ve Unicode karakter biçimini kullanma
-w switch ve IN command komutunu kullanın. Komut isteminde aşağıdaki komutları girin:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidechar;"
REM Import data
bcp TestDatabase.dbo.myWidechar IN D:\BCP\myWidechar.bcp -T -w
REM Review results is SSMS
VERILERI XML olmayan bir biçim dosyasıyla içeri aktarmak için bcp ve Unicode karakter biçimini kullanma
-w ve -f düğmeleri ve IN komut. Bu örnekte bcp, biçim dosyası, Unicode karakteri ve veri dosyasındaki ilk veri alanı karakter dışı olduğundan geçici bir çözüm kullanılmalıdır. Makalenin önceki bölümlerinde Unicode karakter biçimini, bcp'yi ve biçim dosyasını kullanma konusunda dikkat edilmesi gerekenler bölümüne bakın. Veri dosyası myWidechar.bcp, daha sonra anahtar kullanılarak -F 2 atlanacak olan "kukla" kayıt ile ek bir kayıt eklenerek değiştirilir.
Komut isteminde aşağıdaki komutları girin ve değişiklik adımlarını izleyin:
REM Truncate table (for testing)
SQLCMD -Q "TRUNCATE TABLE TestDatabase.dbo.myWidechar;"
REM Open data file
Notepad D:\BCP\myWidechar.bcp
REM Copy first record and then paste as new first record. This additional record is the "dummy" record.
REM Close file.
REM Import data instructing bcp to skip dummy record with the -F 2 switch.
bcp TestDatabase.dbo.myWidechar IN D:\BCP\myWidechar.bcp -f D:\BCP\myWidechar.fmt -T -F 2
REM Review results is SSMS
REM Return data file to original state for usage in other examples
bcp TestDatabase.dbo.myWidechar OUT D:\BCP\myWidechar.bcp -T -w
Biçim dosyası olmadan BULK INSERT ve Unicode karakter biçimini kullanma
DATAFILETYPE argüman. Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
TRUNCATE TABLE TestDatabase.dbo.myWidechar; -- for testing
BULK INSERT TestDatabase.dbo.myWidechar FROM 'D:\BCP\myWidechar.bcp'
WITH (DATAFILETYPE = 'widechar');
-- review results
SELECT * FROM TestDatabase.dbo.myWidechar;
BULK INSERT ve Unicode karakter biçimini XML formatı olmayan bir dosyayla kullanma
FORMATFILE argüman. Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
TRUNCATE TABLE TestDatabase.dbo.myWidechar; -- for testing
BULK INSERT TestDatabase.dbo.myWidechar FROM 'D:\BCP\myWidechar.bcp'
WITH (FORMATFILE = 'D:\BCP\myWidechar.fmt');
-- review results
SELECT * FROM TestDatabase.dbo.myWidechar;
XML olmayan bir biçim dosyasıyla OPENROWSET ve Unicode karakter biçimi kullanma
FORMATFILE argüman. Microsoft SQL Server Management Studio'da (SSMS) aşağıdaki Transact-SQL yürütün:
TRUNCATE TABLE TestDatabase.dbo.myWidechar; -- for testing
INSERT INTO TestDatabase.dbo.myWidechar
SELECT * FROM OPENROWSET (
BULK 'D:\BCP\myWidechar.bcp',
FORMATFILE = 'D:\BCP\myWidechar.fmt'
) AS t1;
-- review results
SELECT * FROM TestDatabase.dbo.myWidechar;
İlgili görevler
Toplu ithalat veya ihracat için veri biçimlerini kullanmak
- SQL Server'ın önceki sürümlerinden yerel ve karakter biçimi verilerini içeri aktarma
- Verileri içeri veya dışarı aktarmak için karakter biçimini kullanma (SQL Server)
- Verileri içeri veya dışarı aktarmak için yerel biçimi kullanma (SQL Server)
- Verileri içeri veya dışarı aktarmak için Unicode yerel biçimini kullanma (SQL Server)