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

Какво е уникално ограничение в SQL Server - SQL Server / TSQL урок, част 95

Какво е уникално ограничение в SQL Server:

Уникалното ограничение в SQL Server е създадено върху колона или колони, за да ограничи колоната/ите, за да приемат само уникални стойности.
В колона, върху която е създадено уникално ограничение, е разрешена само единична нулева стойност.

Сценарий:

Да приемем, че работите като разработчик на SQL Server за застрахователна компания, от вас се иска да създадете таблица dbo.Customer, която трябва да има колона SSN и винаги трябва да приема уникални стойности.


Решение:

За горния сценарий можем да използваме уникално ограничение за SSN колона. Скриптът по-долу може да се използва за създаване на уникално ограничение за колона.
USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
    [FirstName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [SSN] VARCHAR(11),
    Unique(SSN)
) 

--Insert sample records in table 
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
,('Aamir','Shahzad','000-00-0001')
,('Aamir','Shahzad','000-00-0002')
 
 
Проверете данните в таблицата dbo.Customer, като използвате Select query
Как да добавите уникално ограничение към колона в SQL Server

Нека използваме системните изгледи, за да проверим дали е добавено уникално ограничение и какво име му е дал SQL Server.
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'UNIQUE'
 
Как да добавите уникално ограничение в SQL Server
 Както виждаме, SQL Server е дал име "UQ__Customer__CA1E8E3C7E8AFCB1" на уникално ограничение. Ако искаме да приложим някаква конвенция за именуване, тогава трябваше сами да предоставим име.
Ако се опитаме да вмъкнем стойността, която вече съществува в колона Unique Constraint, ще получим грешка по-долу.
Insert into dbo.Customer(FirstName,LastName,SSN)
Values('Raza','M',Null)
 
 Съобщение 2627, ниво 14, състояние 1, ред 11
Нарушение на ограничението UNIQUE KEY 'UQ__Customer__CA1E8E3C7E8AFCB1'. Не може да се вмъкне дублиран ключ в обект 'dbo.Customer'. Стойността на дублирания ключ е ().
Изявлението е прекратено.

Ако искате да създадете уникалното ограничение с някаква конвенция за именуване, можем да използваме синтаксиса по-долу.

USE [YourDatabaseName]
GO
CREATE TABLE [dbo].[Customer](
    [FirstName] [varchar](50) NULL,
    [LastName] [varchar](50) NULL,
    [SSN] VARCHAR(11),
    Constraint UQ_Dbo_Customer_SSN Unique(SSN)
) 
 


Видео демонстрация:Какво е уникално ограничение в SQL Server





  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 - SQL Server / TSQL урок, част 66

  2. Как мога да избягам от квадратни скоби в клауза LIKE?

  3. Колоните за дата в SQL-Server (MSSQL-JDBC 3.0), работещи под Java 1.7.0, извлечени като 2 дни в миналото

  4. Актуализирайте множество колони в SQL

  5. Брой(*) срещу Брой(1) - SQL Server