Skip to main content

PRIMARY KEY CONSTRAINT WHEN TABLE CREATING


1.    Primary key is a filed in a 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.

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'

Here inserting the some sample data

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 satement will fail baecuse

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'.

PRMARY KEY FILED IN TABLE IS UNIQUELY IDENTIFIES EACH ROW/RECORD.
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 beacuse of primary key columns not allow NULL value.

To check the unique index on table simple query below.

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

Comments

Popular posts from this blog

How to Use Merge Statement Using XML Data

We now that merge statement in SQL SERVER. With Merge statement we can merge the data from Source table into Target table. In the Last article we have already seen about Merge Statement .   These articles we will work around merge statement over xml data type. We know that xml data type SQL SERVER. XML Data type is used to storing xml data used Bulk Insert Data into SQL Tables. Example: --Create Student Table if object_id ( 'Student' ) is null create table Student ( id int identity ( 1 , 1 ) , Name varchar ( 20 ), Marks int ) Declare Xml Data Type and Assign Some Xml Data. Declare @Data xml set @Data = '<Root> <Student> <Name>Rakesh</Name> <Marks>80</Marks> </Student> <Student> <Name>Mahesh</Name> <Marks>90</Marks> </Student> <Student> <Name>Gowtham</Name...

Coalesce function

Coalesce function returns the first non-null value among the arguments. Syntax: Coalesce (expression [,..n]) Here is example using Coalesce function Example 1 DECLARE @Str1 varchar ( 10 ), @str2 varchar ( 20 ), @Str3 varchar ( 20 ) SET @Str2 = 'Sql' , @Str3 = 'Server' SELECT COALESCE ( @Str1 , @str2 , @Str3 ) As [Coalesce] In above example @Str2 value is ‘Sql’ , @str3 value is ‘Server’  and @str1 values is Null because it not assigned any value . Output: It return’s “Sql” because Coalesce function return’s first non null value. Example 2: Coalesce in select statement. IF OBJECT_ID ( 'Employee' , 'U' ) IS NOT NULL DROP TABLE Employee CREATE TABLE Employee (   ID INT IDENTITY ( 1 , 1 ) PRIMARY KEY ,   NAME VARCHAR ( 20 ),   SALARY INT ) INSERT INTO Employee   ( NAME , SALARY ) VALUES ( 'Rakesh' , 5000 ),(NULL, 6000 ),( 'Naresh...