One day I discovered that the system table sysdepends
in my database was not valid. I know that dropping and re-creating a stored procedure will update sysdepends
for that single procedure, but what if I had 100s of stored procedures? Of course, there’s a script for that and for all who are too lazy to want to write that script themselves – here it is:
DECLARE @name NVARCHAR(128), @definition NVARCHAR(MAX) DECLARE cur CURSOR FOR SELECT o.name, m.definition FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id = o.object_id WHERE o.type = 'P' OPEN cur FETCH cur INTO @name, @definition WHILE @@Fetch_Status = 0 BEGIN EXEC('DROP PROCEDURE ' + @name) EXEC(@definition) FETCH cur INTO @name, @definition END CLOSE cur DEALLOCATE cur