如何在SSMS中针对SQL Azure运行多个SQL脚本?

山姆·乔利

我想针对SQL Azure DB在SSMS中执行多个SQL(* .sql)TSQL脚本文件。我碰巧正在使用SSMS 2008 R2

我尝试在SSMS查询窗口中执行的代码链接到相关的数据库实例,该代码是从上一个SO问题中挑选出来的:

/*  
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 

不幸的是,SQL Azure不支持“ xp_cmdshell”。

如何为Azure SQL实例执行多个SQL脚本?

提前致谢。

PS我知道如何在SSMS中打开文件

扬·恩格斯伯格

使用SSMS时,脚本将发送到服务器,然后在服务器上执行。正如我在SQL数据库中的注释中提到的那样,服务器无权访问托管它们的计算机上的文件,也无法将其实际上传到这些计算机。所以你的方法行不通。也无法打开本地计算机上的文件。

要从本地计算机针对SQL数据库执行一组脚本,您必须将SQL脚本转换为例如PowerShell脚本:

Get-ChildItem "c:\temp\scripts" -Filter script*.sql | `
Foreach-Object{
    Write-Host 'Executing' $_.FullName
    sqlcmd -U <username>@<server> -P <Password> -S <server>.database.windows.net -d <DatabaseName> -i $_.FullName
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在SSMS中查看执行的SQL

在Perl中运行多个SQL脚本

Flyway-无法运行多个sql脚本

如何在MongoDb中运行SQL脚本

如何在Shell脚本中运行SQL

如何在Azure VM USign Hybrid Connection Manager中从SSMS连接到OnPremise SQL Server

如何在 SQL Developer 中运行 SQL 脚本?

如何在bash脚本中顺序运行sql脚本?

如何在正在运行的多个脚本中共有的T-SQL脚本中声明变量

在 SQL SSMS 中编写多个 CREATE TABLE 脚本?

如何在Azure中运行多个SQL Server容器并确保在它们之间复制数据?

针对具有不同排序规则的多个实例运行SQL Server 2012的SSMS

针对SQL Server中的表并发运行的脚本

SQL Server中的可选关系-如何在SSMS架构设计器中实现

如何运行多个脚本?

使用TransactSQL运行多个脚本文件SQL

如何在SSMS 2008的“编辑前200行”中更改SQL

如何在Docker容器内的CockroachDB中运行SQL脚本?

如何在Sql Server数据工具中运行保存的脚本

T-SQL脚本应如何检测它是在Azure SQL数据库中运行还是在本地运行?

如何在Julia脚本中运行多个脚本?

如何在SQL Server中针对数据库保存过程?

针对 Azure SQL 运行 SSRS 报告

如何在 SSMS 中成功运行递归触发器

在Dockerfile中运行SQL脚本

在容器中运行多个脚本

如何在SSMS中查看Azure表数据

如何从teamcity代理上的gradle脚本运行sql文件(有多个查询和评论)

如何在docker CMD命令中运行多个npm脚本