February 20, 2015 at 9:07 am
Is there anyway I can use powershell to deploy a SP to Multiple dabases in same server.
I have to depoly the same SP to 50+ databases which I can get the list from sys table in the same server.I am wondering if i can do it using powershell to save deployment time? i am using sql server 2008 r2 and 2014
February 20, 2015 at 9:13 am
i would custom cursor for specific databases, sicne you wouldn't deploy to model/master/ReportServer etc.
it's actually a specific list, or some sort of pattern right?(all databases with 'APP_' or something like that?)
USE MASTER
declare
@isql varchar(2000),
@dbname varchar(64)
declare c1 cursor for
select name from master.sys.databases
where name not in ('master','model','msdb','tempdb','ReportServer','ReportServerTempDB')
and (recovery_model_desc <> 'SIMPLE' OR is_auto_close_on =1)
open c1
fetch next from c1 into @dbname
While @@fetch_status <> -1
begin
begin
select @isql = 'CREATE PROCEDURE @dbname.dbo.X'
select @isql = replace(@isql,'@dbname',quotename(@dbname))
print @isql
exec(@isql)
fetch next from c1 into @dbname
end
close c1
deallocate c1
Lowell
February 20, 2015 at 11:48 am
I'd use SQLCMD and run a .SQL file against multiple databases/instances.
I like out of SQL Server processes for this, because I want to deploy easily, or push out, without being depending on a db being on an instance. I have moved them before for load/consolidation issues, and I like flexibility.
SQLCMD -s instance -d database -i mysql.sql
Use a loop or parameters, or even just Excel to build a series of these for the files you need to deploy.
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy