Saya telah melihat awalan N di beberapa permintaan memasukkan T-SQL. Banyak orang telah menggunakan N
sebelum memasukkan nilai dalam tabel.
Saya mencari, tetapi saya tidak dapat memahami apa tujuan N
memasukkan sebelum memasukkan string ke dalam tabel.
INSERT INTO Personnel.Employees
VALUES(N'29730', N'Philippe', N'Horsford', 20.05, 1),
Apa tujuan awalan 'N' ini berfungsi, dan kapan harus digunakan?
sumber
N
hanya menggunakan ketika saya menggunakan tipe data berikutCHAR, VARCHAR or TEXT
?? karena `NCHAR, NVARCHAR atau NTEXT` secara inheren menyimpan UNICODE saya tidak perlu menambahkannya secara terpisah .... apakah itu benar?databases aspfaq com
pengalihan ke situs web sangat meragukan (fkref com
,za1 zeroredirect1 com
,i0z13 trackvoluum com
), yang telah ditandai oleh firewall perusahaan kami sebagai pornografi, situs berbahaya dan URL spam. Saya telah menghubungi pemilik aspfaq.com dan mengedit jawaban untuk menghapus tautan.Biarkan saya memberi tahu Anda hal yang menjengkelkan yang terjadi dengan
N'
awalan - Saya tidak dapat memperbaikinya selama dua hari.Kumpulan basis data saya adalah SQL_Latin1_General_CP1_CI_AS .
Ini memiliki tabel dengan kolom yang disebut MyCol1 . Itu adalah Nvarchar
Kueri ini tidak cocok dengan Nilai Tepat yang Ada.
menggunakan awalan N 'memperbaikinya
Mengapa? Karena latin1_general tidak memiliki titik-titik besar İ itu sebabnya saya gagal.
sumber
1. Kinerja:
Asumsikan klausa Anda di mana seperti ini:
Jika kolom NAME adalah tipe apa pun selain nvarchar atau nchar, maka Anda tidak harus menentukan awalan N. Namun, jika kolom NAME bertipe nvarchar atau nchar, maka jika Anda tidak menentukan awalan N, maka 'JON' diperlakukan sebagai non-unicode. Ini berarti tipe data kolom NAME dan string 'JON' berbeda sehingga SQL Server secara implisit mengubah tipe satu operan ke yang lainnya. Jika SQL Server mengubah tipe literal ke tipe kolom maka tidak ada masalah, tetapi jika itu sebaliknya, kinerja akan terluka karena indeks kolom (jika tersedia) tidak akan digunakan.
2. Set karakter:
Jika kolom bertipe nvarchar atau nchar, maka selalu gunakan awalan N saat menentukan string karakter dalam klausa WHERE criteria / UPDATE / INSERT. Jika Anda tidak melakukan ini dan salah satu karakter dalam string Anda adalah unicode (seperti karakter internasional - contoh - ā) maka itu akan gagal atau mengalami kerusakan data.
sumber
Dengan asumsi nilainya adalah tipe nvarchar untuk itu hanya kita yang menggunakan N ''
sumber