This Script generates Drop and Create script for either views or stored procedures.
Works currently only on SQL Server 2005
This Script generates Drop and Create script for either views or stored procedures.
Works currently only on SQL Server 2005
DECLARE @DATABASE AS VARCHAR(20) SET @DATABASE = 'AdventureWorks' -- EX: AdventureWorks DECLARE @WHATTOCREATE AS CHAR(1) SET @WHATTOCREATE = 'P' -- EX: p = procedures, v = views EXEC ('USE ' +@DATABASE) PRINT 'USE [' + @DATABASE + ']' + CHAR(13) + 'GO' + CHAR(13) DECLARE JOB_CURSOR CURSOR FOR SELECT OBJECT_ID FROM SYS.OBJECTS WHERE [TYPE] IN (@WHATTOCREATE) OPEN JOB_CURSOR DECLARE @OBJECT_ID AS INT FETCH NEXT FROM JOB_CURSOR INTO @OBJECT_ID DECLARE @SQL AS VARCHAR(MAX) WHILE @@FETCH_STATUS = 0 BEGIN SELECT @SQL = 'IF OBJECT_ID (''['+ S.NAME + '].['+ O.NAME + ']'') IS NOT NULL BEGIN DROP '+ CASE O.TYPE WHEN 'P' THEN 'PROCEDURE ' WHEN 'V' THEN 'VIEW ' END + ' ['+ S.NAME + '].['+ O.NAME + '] END GO' + CHAR(13) + CHAR(13) + + M.DEFINITION + CHAR(13) + 'GO' + CHAR(13) FROM SYS.OBJECTS O INNER JOIN SYS.SQL_MODULES M ON O.OBJECT_ID = M.OBJECT_ID INNER JOIN SYS.SCHEMAS S ON S.SCHEMA_ID = O.SCHEMA_ID WHERE O.OBJECT_ID = @OBJECT_ID PRINT @SQL FETCH NEXT FROM JOB_CURSOR INTO @OBJECT_ID END CLOSE JOB_CURSOR DEALLOCATE JOB_CURSOR