Sensitiviti huruf dalam SQL Server LIKE operator
Pengendali LIKE dalam SQL Server ialah alat yang berkuasa untuk mencari dan menapis data berdasarkan corak rentetan. Walau bagaimanapun, salah tanggapan biasa ialah pengendali LIKE itu sendiri sensitif huruf besar-besaran. Malah, kepekaan huruf besar-besaran bergantung pada pengumpulan lajur asas.
Pengumpulan dan sensitiviti huruf besar
Pengumpulan ialah sifat yang diberikan kepada pangkalan data dan lajur SQL Server yang mentakrifkan peraturan untuk mengisih, membandingkan dan mencari data. Pengumpulan mempengaruhi cara aksara ditafsir dan dibandingkan, termasuk kepekaan huruf besar.
Contohnya, jika pengumpulan lajur menentukan kepekaan huruf besar-besaran, seperti "Latin1_General_CS_AS" (AS = sensitif aksen), maka perbandingan pengendali LIKE juga akan menjadi sensitif huruf besar-besaran. Dalam kes ini, mencari "Apple" akan mengembalikan hasil yang berbeza daripada mencari "epal".
Semak pengumpulan untuk kepekaan huruf kecil
Untuk menentukan pengumpulan lajur atau pangkalan data tertentu, laksanakan pertanyaan berikut:
<code class="language-sql">-- 检查实例排序规则 SELECT SERVERPROPERTY('collation'); -- 检查数据库排序规则 SELECT DATABASEPROPERTYEX('DatabaseName', 'collation');</code>
Ubah suai peraturan pengisihan
Jika mahu, anda boleh mengubah suai himpunan lajur atau pangkalan data untuk menukar sensitiviti huruf besar. Walau bagaimanapun, ini mungkin memberi kesan pada data sedia ada dan mungkin memerlukan pengubahsuaian pengumpulan peringkat lajur.
<code class="language-sql">-- 使用特定排序规则创建表 CREATE TABLE ExampleTable (ExampleColumn VARCHAR(10) COLLATE Latin1_General_CI_AS); -- 更改表并修改列排序规则 ALTER TABLE ExampleTable ALTER COLUMN ExampleColumn VARCHAR(10) COLLATE Latin1_General_CS_AS;</code>
Nota mengenai penyusunan yang berubah secara dinamik
Walaupun secara teknikal mungkin untuk menukar himpunan perbandingan rentetan pada masa tayangan, ini amat tidak digalakkan dalam persekitaran pengeluaran kerana ia akan memberi kesan kepada prestasi. Gunakan kaedah ini dengan berhati-hati hanya jika perlu.
Atas ialah kandungan terperinci Adakah SQL Server seperti pengendali kes sensitif?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!