SET NOCOUNT ON -------------------------- -- VARIABLE DECLARATION -- -------------------------- DECLARE @DatabaseCursor AS CURSOR DECLARE @DatabaseName AS NVARCHAR(128) DECLARE @SqlScriptLocation AS VARCHAR(2000) DECLARE @UserName AS VARCHAR(128) DECLARE @Password AS VARCHAR(128) ------------------------- -- Initialize variable -- ------------------------- SET @SqlScriptLocation = '' SET @UserName = '' SET @Password = '' ------------------------------------------ -- Execute the script for each database -- ------------------------------------------ SET @DatabaseCursor = CURSOR LOCAL FORWARD_ONLY READ_ONLY STATIC FOR SELECT [name] as Database_Name FROM master.sys.databases AS dtb WHERE (dtb.compatibility_level>N'70' and CAST(has_dbaccess(dtb.name) AS bit)=1) AND [name] NOT IN ('msdb','master','model','tempdb', 'Distribution') ORDER BY [Name] ASC OPEN @DatabaseCursor FETCH NEXT FROM @DatabaseCursor INTO @DatabaseName WHILE @@FETCH_STATUS = 0 BEGIN PRINT 'USE [' + @DatabaseName + ']' PRINT 'GO' DECLARE @ExecuteCommand AS VARCHAR(1000) SET @ExecuteCommand = 'sqlcmd -d "' + @Databasename + '" -i "' + @SqlScriptLocation + '" -U "' + @UserName + '" -P "' + @Password + '" -S "' + @@SERVERNAME + '"' EXEC xp_cmdShell @ExecuteCommand FETCH NEXT FROM @DatabaseCursor INTO @DatabaseName END CLOSE @DatabaseCursor DEALLOCATE @DatabaseCursor