Primary Key in SQL Server

PRIMARY KEY

  1. Primary key is a filed in table which uniquely identifies each row / record.
  2. When we create primary key on columns it follows two conditions.

A. Primary key column is uniquely identifies each row / record.
B. Primary key column not allow NULL values.

CREATE PRIMARY KEY WHEN CTREATING THE TABLE:

Column level

CREATE TABLE Tbl_emp_Pk

(

  ID INT PRIMARY KEY,

  NAME VARCHAR(10),

  SALARY INT NOT NULL

)

Table level

CREATE TABLE Tbl_emp_Pk

(

  ID INT ,

  NAME VARCHAR(10),

  SALARY INT NOT NULL

  CONSTRAINT pk_ID PRIMARY KEY (ID)

)

To check list of primary key constraints

SELECT * FROM SYS.KEY_CONSTRAINTS 

WHERE  type='PK'

 

INSERT INTO Tbl_emp_Pk ( ID,NAME,SALARY)

VALUES(1,'Rakesh',7000)

 

INSERT INTO Tbl_emp_Pk ( ID,NAME,SALARY)

VALUES(2,'Banu',8000)

 

INSERT INTO Tbl_emp_Pk ( ID,NAME,SALARY)

VALUES(3,'Ravi',9000)

SELECT * FROM Tbl_emp_Pk

 

Senario-1
 

INSERT INTO Tbl_emp_Pk ( ID,NAME,SALARY)

VALUES(3,'Madhu',1000)

In above table data 3 values is already exists in ID column. The above insert statement will fail because

Msg 2627, Level 14, State 1, Line 2

Violation of PRIMARY KEY constraint 'pk_ID'. Cannot insert duplicate key in object 'dbo.Tbl_emp_Pk'.

Senario-2

INSERT INTO Tbl_emp_Pk ( ID,NAME,SALARY)

VALUES(NULL,'Madhu',1000)

In above insert query NULL value is inserting in ID column. The above insert satement will fail bacause of prmary key field not allow null values.

Msg 515, Level 16, State 2, Line 3
Cannot insert the value NULL into column 'ID', table 'test.dbo.Tbl_emp_Pk'; column does not allow nulls. INSERT fails.

PRMARY KEY FILED IN TABLE IS NOT ALLOW NULL VALUES

When we create primary key on table automaticallly unique index is created on the table.

To check the unique index on table simple query below.

SELECT * FROM SYS.INDEXES  WHERE [object_id]= OBJECT_ID('Tbl_emp_Pk')