There is miner difference between DELETE, TRUNCATE with RESEED Identity in SQL Server. For demonstration first we create a table with Identity column then perform DELETE and TRUNCATE operation.
-- CREATE TABLE CREATE TABLE STUDENT_INFO ( [ID] INT IDENTITY(1,1) PRIMARY KEY, [ROLL_NO]INT NOT NULL, [NAME] VARCHAR(50) NOT NULL, ) -- INSERT RECORDS INSERT INTO STUDENT_INFO VALUES(101,'HAIDAR') INSERT INTO STUDENT_INFO VALUES(102,'ARUN') -- DISPLAY TABLE RECORD SELECT * FROM STUDENT_INFO |
Screen Shot
Effect of DELETE statement
Delete records from table using DELETE command then insert new record and see table records.
-- DELETE RECORDS DELETE FROM STUDENT_INFO --INSERT SOME NEW RECORD INSERT INTO STUDENT_INFO VALUES(103,'MANOJ') INSERT INTO STUDENT_INFO VALUES(104,'SAURABH') -- DISPLAY TABLE RECORDS SELECT * FROM STUDENT_INFO |
Screen Shot
Here we see, When the DELETE statement is executed without WHERE clause it will delete all the rows. However, when a new record is inserted the identity value (ID column) is increased from 2 to 3. It does not reset but keep on increasing.
Effect of TRUNCATE statement
Delete records from table using TRUNCATE command then insert new record and see table records.
-- TRUNCATE RECORDS TRUNCATE TABLE STUDENT_INFO -- INSERT NEW RECORDS INSERT INTO STUDENT_INFO VALUES(105,'SANDEEP') INSERT INTO STUDENT_INFO VALUES(106,'ROHIT') -- DISPLAY TABLE RECORDS SELECT * FROM STUDENT_INFO |
Screen Shot
Now we see, When the TRUNCATE statement is executed it will remove all the rows. However, when a new record is inserted the identity value (ID column) is increased from 1 (which is original value). TRUNCATE resets the identity value to the original seed value of the table.
No comments:
Post a Comment