Monday, 1 July 2013

GENERIC 18. Drop Procs and UDFs which are not there in Later versions

USE [DBName1]
GO
-- Drop Procs and UDFs which are not there in Later versions
SELECT 'USE [DBName2]'
UNION ALL
SELECT 'GO'
UNION ALL
SELECT '-- Drop Procs and UDFs which are not there in Later versions '
UNION ALL
SELECT --ROUTINE_SCHEMA,ROUTINE_NAME,ROUTINE_TYPE
'IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''['+ROUTINE_SCHEMA+'].['+ROUTINE_NAME+']'') AND type in (N''P'', N''PC'',''FN'', N''IF'', N''TF'', N''FS'', N''FT'')) DROP '+ ROUTINE_TYPE +' ['+ROUTINE_SCHEMA+'].['+ROUTINE_NAME + '] '+ ' GO'
FROM DBName2 .INFORMATION_SCHEMA.ROUTINES A
WHERE ROUTINE_NAME NOT IN (
SELECT ROUTINE_NAME COLLATE Latin1_General_CI_AI FROM [DBName1].INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA COLLATE Latin1_General_CI_AI= A.ROUTINE_SCHEMA AND ROUTINE_NAME COLLATE Latin1_General_CI_AI= A.ROUTINE_NAME AND ROUTINE_TYPE COLLATE Latin1_General_CI_AI= A.ROUTINE_TYPE)
UNION ALL
SELECT 'GO'
GO

No comments:

Post a comment