19

有没有办法在 SSMS 中实现文本编辑宏?例如,我想转换代码,如下所示,但使用按键,而不是冗长的正则表达式搜索和替换。

这:

INSERT INTO [TABLE]
           ([fieldOne]
           ,[fieldTwo])
     VALUES
           (<fieldOne, datetime,>
           ,<fieldTwo, real(24,0))

必须变成这样:

INSERT INTO [TABLE]
           ([fieldOne]
           ,[fieldTwo])
     VALUES
           (@fieldOne
           ,@fieldTwo)

我知道 SSMS 本身并不支持这一点,但我也知道它是可扩展的,如果没有记录的话,并且还有完全外部应用程序的空间,它将复制文本、转换并粘贴回来,而无需打开编辑器,粘贴、编辑、复制并粘贴回 SSMS。

编辑存储的模板不是一个选项,因为这些模板是动态生成的,并且使用 Ctrl+Shift+M 也不是一个选项,因为我仍然必须键入每个参数名称,但不方便在查询中复制和粘贴编辑。

没有 SSMS 解决方案!我正在寻找某种可以帮助我做到这一点的外部巫术。

4

6 回答 6

11

AutoHotKey脚本呢?

根据模板的复杂性,您可以

  1. 使用 AutoHotKey 播放正则表达式搜索和替换所需的击键,或
  2. 将模板复制到剪贴板并直接在 AutoHotKey 中对其进行操作,然后再将其粘贴回去。

我确信第一个选项会起作用。第二个我没试过。

这个问题说明了如何编写 AutoHotKey 脚本来监听键盘和弦。

于 2009-03-16T08:43:56.303 回答
7

如果您使用的是 SSMS 2005 及更高版本,它内置了对模板的支持。它不是完全成熟的宏,但它仍然非常有用。

语法与您在第一个代码片段中显示的完全相同,您只需按 Ctrl+Shift+M 即可弹出一个对话框,提示您将值放入尖括号中的位中。

如果您右键单击表并选择“将表编写为”,然后选择插入、更新或删除选项,SQL Server 会以这种格式生成脚本。

您还可以创建自己的自定义模板,或修改现有的内置模板之一(单击查看 -> 模板资源管理器以访问其他内置模板)。

MSDN 上有一篇简短的文章解释了如何开始使用模板。

于 2009-03-15T11:30:35.333 回答
1

正在寻找其他东西,但发现了这个问题。如果您仍在寻找某些东西,请尝试 SSMS 工具包:http ://www.ssmstoolspack.com/它有宏和许多其他简洁的东西。而且它是免费的!

于 2011-01-12T17:49:29.913 回答
1

对于 SSMS 2016,您可以使用我的Visual Commander扩展。它支持用于编辑器文本操作的宏录制/播放和自定义 C#/VB 命令。

于 2016-08-28T02:56:21.073 回答
0

第一个代码是来自老式 MS Query Analyzer 的模板。填充的快捷键是Ctrl+M(但我不确定,可能是Ctrl+Shift+M)。

较新的 SSMS 中应该有相同的功能。

于 2009-03-15T11:49:09.550 回答
0

我通常将代码复制到另一个编辑器(Notepad++ 或 Delphi /RAD Studio 编辑器),执行我的宏操作,然后将其粘贴回 SSMS。

于 2014-10-29T08:49:27.127 回答