Moses' Blog

Living {.net} lifestyle

Muhammad Mosa

Name of author
mosesofegypt logo
Software Engineer.
MCT, MCSD.NET,
MCTS: .Net 2.0 Web, Windows, Distributed Applications
MCTS: .Net 3.5 WF Application Development
MCTS: WSS 3.0, MOSS 2007 Configuration & App Dev
MCPD: Enterprise Application Developer

Send mail My Live Space Facebook Twitter Moses's profile on Technorati


Calendar

<<  September 2008  >>
MoTuWeThFrSaSu
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

View posts in large calendar

Recent Comments

Comment RSS

Community Credit

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2008

SQL Server, Clean your Database Records and reset Identity Columns, The Shortest Path

Well, I had a small issue regarding writing a script to clean a database we have and reset its identity columns in all tables. Although the database wasn't huge one (less than 100 tables) I had to trace relations to be able to delete child table's records before parent's ones because of the foreign key constraints. The solution is disable the foreign keys and delete records with no fear of any errors then enables the constraints again.
Well, I found a solution to disable all constraints without the need to go on each table and disable it manually. and I was happy to know that I can use this solution in deleting all records from all tables. Not only this I was able to use the same solution to reset identity columns in all tables.
The solution was to use this built in stored procedure sp_MSforeachtable. For help about this proc search for it in Books online or use this sp_helptext sp_MSForeachtable.
Now back to my 6 lines, bellow is how I re-zeroed my Database:

   1: /*Disable Constraints & Triggers*/
   2: exec sp_MSforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
   3: exec sp_MSforeachtable 'ALTER TABLE ? DISABLE TRIGGER ALL'
   4:  
   5: /*Perform delete operation on all table for cleanup*/
   6: exec sp_MSforeachtable 'DELETE ?'
   7:  
   8: /*Enable Constraints & Triggers again*/
   9: exec sp_MSforeachtable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
  10: exec sp_MSforeachtable 'ALTER TABLE ? ENABLE TRIGGER ALL'
  11:  
  12: /*Reset Identity on tables with identity column*/
  13: exec sp_MSforeachtable 'IF OBJECTPROPERTY(OBJECT_ID(''?''), ''TableHasIdentity'') = 1 BEGIN DBCC CHECKIDENT (''?'',RESEED,0) END'
kick it on DotNetKicks.com
Posted: Dec 09 2007, 09:13 by mosessaur | Comments (0) RSS comment feed |
  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Filed under: SQL Server | Tips
Social Bookmarks: E-mail | Kick it! | DZone it! | del.icio.us

Add comment


(Will show your Gravatar icon)  

  Country flag

biuquote
  • Comment
  • Preview
Loading