I would like to execute multiple SQL (*.sql) TSQL script files, in SSMS, against a SQL Azure DB. I happen to be using SSMS 2008 R2
The code, I tried to execute in a SSMS query window, linked to the relevant DB instance, as picked up from a previous SO question, was :
/*
execute a list of .sql files against the server and DB specified
*/
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRAN
DECLARE @DBServerName VARCHAR(100) = 'DBServerName '
DECLARE @DBName VARCHAR(100) = 'DBName'
DECLARE @FilePath VARCHAR(200) = 'c:\temp\scripts'
/*
create a holder for all filenames to be executed
*/
DECLARE @FileList TABLE (Files NVARCHAR(MAX))
INSERT INTO @FileList VALUES ('script1.Sql')
INSERT INTO @FileList VALUES ('script2.Sql')
INSERT INTO @FileList VALUES ('script3.Sql')
WHILE (SELECT COUNT(Files) FROM @FileList) > 0
BEGIN
/*
execute each file one at a time
*/
DECLARE @FileName NVARCHAR(MAX) = (SELECT TOP(1) Files FROM @FileList)
DECLARE @command VARCHAR(500) = 'sqlcmd -S ' + @DBServerName + ' -d ' + @DBName + ' -i "' + @FilePath + @Filename +'"'
EXEC xp_cmdshell @command
PRINT 'EXECUTED: ' + @FileName
DELETE FROM @FileList WHERE Files = @FileName
END
COMMIT TRAN
Unfortunately SQL Azure does not support "xp_cmdshell".
How can I execute multiple SQL scripts for an Azure SQL instance?
Thanks in advance.
P.S I am aware of how one can open a file in SSMS