是否可以在SSMS中运行所有打开的脚本。会有什么捷径吗?就像F5
只运行一个活动的脚本一样。我想要它的原因是所有脚本CTRL+H
的临时更改。我想运行所有脚本而不保存更改。这就是为什么我不想在目录中运行所有脚本的想法。
更新。不,手动不会更快。我需要它的原因就在这里:VBA clear just pivot table cache, but leaving pivot table structure 我必须在6个脚本上运行它,而不仅仅是一次,但我随时更改SQL代码或Excel文件。手动是令人沮丧的。
答案 0 :(得分:2)
您可以使用SQLCMD模式执行此操作。
:r
,然后输入脚本的路径。所以: :r C:\Path\To\Script\1.sql
:r C:\Path\To\Script\2.sql
:r C:\Path\To\Script\3.sql
:r C:\Path\To\Script\4.sql
:r C:\Path\To\Script\5.sql
:r C:\Path\To\Script\6.sql
您无法在SQL脚本中启用SQLCMD模式,但您可以get it to yell at you or stop executing if it's not enabled。您还可以将SSMS设置为始终以工具中的SQLCMD模式启动 - >选项 - >查询执行。
答案 1 :(得分:1)
你可以这样做: Ctrl +( E F6 E F6 E ...)
答案 2 :(得分:1)
我同意你的改进动力。在这种情况下,为您创建执行所有6个脚本的存储过程并获取参数(您当前通过Ctrl + H替换它们)。
然后(另一项改进)您可以更新 VBA代码以连接到SQL数据库并为您调用该存储过程。这样,您甚至不需要打开SSMS。无缝而有效。
另请参阅CREATE PROCEDURE,EXECUTE及其中的代码示例。
有vast amount of resources on calling stored procedure from Excel。
答案 3 :(得分:1)
我发现的最快方法是使用 SSMS 打开一个包含 .sql 文件的文件夹,其中文件 > 打开文件夹 ... (Ctrl+Shift+Alt+O) 将在 SSMS 的解决方案资源管理器中显示它们。双击每个文件打开并使用 Ctrl + E 执行。继续点击列表直到完成。