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