How to create and delete MSSQL unique constraints
Setting a unique constraint on a column ensures data integrity for the database by preventing duplicate values from entering certain columns.
Unique constraint features
Value uniqueness:
Unique constraints do not allow duplicate values, so you can ensure that you have unique values for specific columns.Allow NULL:
Unique constraints do not allow redundancy, but allow NULL values, but only one NULL value per column.FORIGN KEY REFERENCE:
The unique constraint has the advantage of being referred to as FORIGN KEY.Index creation:
Adding a unique constraint at the time of index creation can automatically check the uniqueness of the value.
Create a unique constraint
1. How to create a unique automatically in a column while creating a table.
Syntax and Source code.
-- Syntax
CREATE TABLE [Table Name] (
[column1] [dataType] UNIQUE,
[column2] [dataType],
[column3] [dataType]
);
-- Source code.
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForUnique;
CREATE TABLE UserInfoForUnique (
ID int UNIQUE,
LastName varchar(255),
FirstName varchar(255)
);
-- Check Error.
insert into UserInfoForUnique(ID,LastName,FirstName)
values(202401,'john','hub');
It's a practice code.
2. Generating UNIQUE constraints on two or more columns.
Syntax and Source code.
-- Syntax
CREATE TABLE [Table Name] (
[column1] [dataType],
[column2] [dataType],
[column3] [dataType],
CONSTRAINT [Constraint name] UNIQUE([column1,column2])
);
-- Source code.
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForUnique;
CREATE TABLE UserInfoForUnique (
ID int,
LastName varchar(255),
FirstName varchar(255),
CONSTRAINT Uk_UserInfoForUnique UNIQUE(ID,FirstName)
);
3.How to create a UNIQUE constraint on an existing column.
Syntax and Source code.
-- Syntax
ALTER TABLE [Table Name] ADD CONSTRAINT [Constraint name] UNIQUE ([column1,column2]);
-- Source code.
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForUnique;
CREATE TABLE UserInfoForUnique (
ID int,
LastName varchar(255),
FirstName varchar(255)
);
ALTER TABLE UserInfoForUnique ADD CONSTRAINT Uk_UserInfoForUnique UNIQUE (ID,FirstName);
4.How to set up UNIQUE when creating a new column.
Syntax and Source code.
-- Syntax.
ALTER TABLE [Table Name] ADD [column1] [dataType] CONSTRAINT [UNIQUE Name] UNIQUE (column1,column2]);
--Source code.
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForUnique;
CREATE TABLE UserInfoForUnique (
ID int,
LastName varchar(255),
FirstName varchar(255)
);
ALTER TABLE UserInfoForUnique ADD addId int CONSTRAINT Uk_UserInfoForUnique UNIQUE (ID,addId);
How to search for created unique constraints
Syntax and Source code.
-- Syntax
EXEC SP_HELP[Table Name];
-- Source code
EXEC SP_HELP UserInfoForUnique;
-- Syntax code
select CONSTRAINT_CATALOG
,CONSTRAINT_SCHEMA
,CONSTRAINT_NAME
,TABLE_CATALOG
,TABLE_SCHEMA
,TABLE_NAME
,COLUMN_NAME
,ORDINAL_POSITION
from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_NAME = 'Table Name';
-- Source code
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForUnique;
CREATE TABLE UserInfoForUnique (
ID int unique,
LastName varchar(255),
FirstName varchar(255)
);
select CONSTRAINT_CATALOG
,CONSTRAINT_SCHEMA
,CONSTRAINT_NAME
,TABLE_CATALOG
,TABLE_SCHEMA
,TABLE_NAME
,COLUMN_NAME
,ORDINAL_POSITION
from INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where TABLE_NAME = 'UserInfoForUnique' ;
It's a practice code.
Drop created unique constraints
Syntax and Source code.
-- drop Syntax.
ALTER TABLE [Table Name] DROP CONSTRAINT [UNIQUE Name]
-- Source code.
USE sampleDB;
DROP TABLE IF EXISTS UserInfoForUnique;
CREATE TABLE UserInfoForUnique (
ID int,
LastName varchar(255),
FirstName varchar(255),
CONSTRAINT Uk_UserInfoForUniqueDrop UNIQUE(ID,FirstName)
);
ALTER TABLE UserInfoForUnique DROP CONSTRAINT Uk_UserInfoForUniqueDrop;
Leave a comment