如何在SSMS中运行所有脚本

时间:2015-09-01 11:38:52

标签: sql sql-server ssms

是否可以在SSMS中运行所有打开的脚本。会有什么捷径吗?就像F5只运行一个活动的脚本一样。我想要它的原因是所有脚本CTRL+H的临时更改。我想运行所有脚本而不保存更改。这就是为什么我不想在目录中运行所有脚本的想法。

更新。不,手动不会更快。我需要它的原因就在这里:VBA clear just pivot table cache, but leaving pivot table structure 我必须在6个脚本上运行它,而不仅仅是一次,但我随时更改SQL代码或Excel文件。手动是令人沮丧的。

4 个答案:

答案 0 :(得分:2)

您可以使用SQLCMD模式执行此操作。

  1. 创建新查询。确保查询 - > SQLCMD模式已启用。
  2. 在新查询中,输入:r,然后输入脚本的路径。所以:
  3. :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

    1. 运行您的脚本。每个文件都应按顺序执行。
    2. 您无法在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 PROCEDUREEXECUTE及其中的代码示例。

vast amount of resources on calling stored procedure from Excel

答案 3 :(得分:1)

我发现的最快方法是使用 SSMS 打开一个包含 .sql 文件的文件夹,其中文件 > 打开文件夹 ... (Ctrl+Shift+Alt+O) 将在 SSMS 的解决方案资源管理器中显示它们。双击每个文件打开并使用 Ctrl + E 执行。继续点击列表直到完成。