Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Уникална колона на SQL Server 2008, която е чувствителна към главни и малки букви

Уникалността може да бъде наложена с уникално ограничение.

Дали уникалният индекс е чувствителен към малки и главни букви или не, се определя от съпоставката на сървъра (или таблицата). .

Можете да получите текущото сортиране на вашата база данни с тази заявка:

SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation') SQLCollation;

и трябва да получите нещо като:

SQLCollation
————————————
SQL_Latin1_General_CP1_CI_AS

Тук "CI_AS" в края на сортирането означава:CI =без значение между малки и големи букви, AS =чувствително към ударение.

Това може да бъде променено на каквото искате да бъде. Ако вашата база данни и/или таблица има сортиране, чувствително към малки и главни букви, бих очаквал, че уникалността на вашия индекс също ще бъде чувствителна към малки и малки букви, напр. вашият abcdef и ABCDEF трябва да са едновременно приемливи като уникални низове.

Марк

АКТУАЛИЗАЦИЯ:

Току-що опитах това (SQL Server 2008 Developer Edition x64) - работи за мен (моята база данни обикновено използва "Latin1_General_CI_AS колацията, но мога да дефинирам различна за таблица / за колона VARCHAR дори):

CREATE TABLE TestUnique
    (string VARCHAR(50) COLLATE SQL_Latin1_General_Cp1_CS_AS)

CREATE UNIQUE INDEX UIX_Test ON dbo.TestUnique(string)

INSERT INTO dbo.TestUnique(string) VALUES ('abc')
INSERT INTO dbo.TestUnique(string) VALUES ('ABC')

SELECT * FROM dbo.TestUnique

и се връщам:

string
ABC
abc

и няма грешка за нарушен уникален индекс.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предавайте тип стойност на таблица към съхранена процедура на SQL Server чрез Entity Framework

  2. Първо EF код, как да регистрирам същото име на таблица с различна схема?

  3. Как да импортирате JSON файл в таблица на SQL Server

  4. Всички Lat Lng на sql таблица в рамките на 15 км до всяка Lat lng на различна таблица-sql 2008

  5. SQL Server 2008 Стартиращ тригер след вмъкване, актуализацията заключва оригиналната таблица