在SSMS中自动生成鼠标点击脚本?

时间:2012-06-06 16:10:18

标签: sql-server sql-server-2008 macros ssms

我们可以通过SQL命令创建(更新,填充)表等,也可以在SQL Server Management Studio(Express)2008中使用鼠标/键盘单击选项/命令。

有没有办法可以记录用鼠标操作时发生的所有命令?

SSMS中是否有宏录制功能?

是否有第三方插件支持SSMS中的宏录制?

2 个答案:

答案 0 :(得分:2)

不,SSMS内置了记录击键/鼠标点击的内容。 There are plenty of 3rd party programs available, though

您应该做的是使用T-SQL或DDL编写要运行的命令。这些很容易保存到文件,存储在源代码控制,审阅,稍后再运行等等。

在较新版本的SSMS中,您通过对话框执行的几乎所有任务都能够编写您要执行的更改的脚本(或者只是生成脚本而不是单击“确定”):

enter image description here

对于您在评论中提供的用例,

编辑,您可以在其中创建表格,添加约束,添加一些虚拟数据。以下是生成可以在以后使用的脚本的方法:

  1. 打开对象资源管理器
  2. 右键单击您的数据库,然后选择“任务”>生成脚本
  3. 单击“下一步”,然后单击“下一步”
  4. 在“选择脚本选项”页面上,向下滚动并将“脚本数据”设置为True
  5. 点击下一步
  6. 检查表格并单击“下一步”
  7. 检查您想要的表格,然后点击下一步
  8. 选择是否脚本到文件,剪贴板或新的查询编辑器窗口。
  9. 你最终会得到这样的东西:

    USE [your_database]
    GO
    /**** set options, object name, script date, etc ****/
    CREATE TABLE [dbo].[foo](
      bar INT,
      blat INT,
      CONSTRAINT PK_foo PRIMARY KEY CLUSTERED(bar ASC)
    ) -- with/on etc.
    GO
    INSERT [dbo].[foo]([bar],[blat]) VALUES(1,2);
    INSERT [dbo].[foo]([bar],[blat]) VALUES(3,4);
    GO
    ALTER TABLE [dbo].[foo] WITH NOCHECK ADD CONSTRAINT [chk_blat]
      CHECK ((blat > bar))
    GO
    ALTER TABLE [dbo].[foo] CHECK CONSTRAINT [chk_blat]
    GO
    

    我知道这比你想要的步骤更多,但是Management Studio的工作不是保存你执行的每一个命令并将其存储在某个地方,以便你以后可以检索它。

答案 1 :(得分:0)

以下两个选项可能有所帮助。

SSMS工具包有一个查询历史记录: http://www.ssmstoolspack.com/Images/Features/QEH1.png

我认为这将按预期工作,因为您与GUI的交互将转换为T-SQL命令,应由此工具记录。

您可以在此处下载: http://www.ssmstoolspack.com/Features

如果您开始熟悉实际命令,可以使用SQL Tab Magic,它会自动保存您的SSMS查询窗口以供将来检索: http://www.red-gate.com/products/sql-development/sql-prompt/entrypage/sqltabmagic

相关问题