If anyone has a need to do this, I've written a little (very dangerous) script. I'd advise never to run this on a production environment.DECLARE @object NVARCHAR(MAX)DECLARE @text NVARCHAR(MAX)IF OBJECT_ID('tempdb..#sqlText') IS NOT NULL DROP TABLE #sqlTextCREATE TABLE #sqlText ( [Id] INT IDENTITY(1,1) , [line] NVARCHAR(255) )DECLARE recCursor CURSOR LOCAL READ_ONLY FORSELECT [name]FROM sysObjectsWHERE [xType] IN ('P', 'FN')OPEN recCursor FETCH NEXT FROM recCursor INTO @object WHILE ( @@FETCH_STATUS = 0 ) BEGIN -- Comment out the print to only get the errors! PRINT 'Recompile : ' + @object SET @text = '' TRUNCATE TABLE #sqlText INSERT #sqlText EXEC sp_helpText @object SELECT @text = @text + [Line] FROM #sqlText ORDER BY [Id] ASC SELECT @text = REPLACE(@text, 'CREATE PROCEDURE', 'ALTER PROCEDURE') SELECT @text = REPLACE(@text, 'CREATE PROCEDURE', 'ALTER PROCEDURE') SELECT @text = REPLACE(@text, 'CREATE PROCEDURE', 'ALTER PROCEDURE') SELECT @text = REPLACE(@text, 'CREATE FUNCTION', 'ALTER FUNCTION') SELECT @text = REPLACE(@text, 'CREATE FUNCTION', 'ALTER FUNCTION') SELECT @text = REPLACE(@text, 'CREATE FUNCTION', 'ALTER FUNCTION') EXEC sp_executeSql @TEXT FETCH NEXT FROM recCursor INTO @object ENDCLOSE recCursorDEALLOCATE recCursor-------------Charlie