Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah operator LIKE case-sensitive dengan MSSQL Server?

Bukan operator yang peka huruf besar-kecil, melainkan kolom itu sendiri.

Ketika instalasi SQL Server dilakukan, pemeriksaan default dipilih untuk instance. Kecuali disebutkan sebaliknya secara eksplisit (periksa klausa susun di bawah) ketika database baru dibuat, ia mewarisi susunan dari instance dan ketika kolom baru dibuat, ia mewarisi susunan dari basis data miliknya.

Susunan seperti sql_latin1_general_cp1_ci_as menentukan bagaimana konten kolom harus diperlakukan. CI adalah singkatan dari case insensitive dan AS adalah singkatan dari aksen sensitif.

Daftar lengkap susunan tersedia di https://msdn.microsoft.com/en-us/library/ms144250(v=sql.105).aspx

(a) Untuk memeriksa susunan instance

select serverproperty('collation')

(b) Untuk memeriksa susunan basis data

select databasepropertyex('databasename', 'collation') sqlcollation

(c) Untuk membuat database menggunakan susunan yang berbeda

create database exampledatabase
collate sql_latin1_general_cp1_cs_as 

(d) Untuk membuat kolom menggunakan susunan yang berbeda

create table exampletable (
    examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null
)

(e) Untuk mengubah susunan kolom

alter table exampletable
alter column examplecolumn varchar(10) collate sql_latin1_general_cp1_ci_as null

Dimungkinkan untuk mengubah instance dan kumpulan database tetapi itu tidak memengaruhi objek yang dibuat sebelumnya.

Dimungkinkan juga untuk mengubah susunan kolom dengan cepat untuk perbandingan string, tetapi ini sangat tidak disarankan dalam lingkungan produksi karena sangat mahal.

select
  column1 collate sql_latin1_general_cp1_ci_as as column1
from table1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa melakukan pernyataan UPDATE dengan JOIN di SQL Server?

  2. Mengapa Dateiff antara GETDATE() dan SYSDATETIME() dalam milidetik selalu berbeda?

  3. Mempercepat pembaruan 185k baris di SQL Server 2008?

  4. Otentikasi jendela di server sql dan asp.net

  5. sql cross join - apa gunanya ada yang menemukannya?