Sql server SQL Server Management Studio中的宏

Sql server SQL Server Management Studio中的宏,sql-server,macros,Sql Server,Macros,有没有办法在SSM中实现文本编辑宏?例如,我想转换代码,如下所示,但只需按键,而不是冗长的正则表达式搜索和替换 这: 我知道SSMS本机不支持这一点,但我也知道它是可扩展的,如果没有文档记录的话,它还可以容纳一个完全外部的应用程序,该应用程序可以获取复制的文本、转换文本并将其粘贴回SSMS,而无需打开编辑器、粘贴、编辑、复制和粘贴回SSMS 编辑存储的模板不是一个选项,因为这些模板是动态生成的,并且使用Ctrl+Shift+M也不是一个选项,因为我仍然必须键入每个参数名称,但不方便在查询编辑器中

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

这:

我知道SSMS本机不支持这一点,但我也知道它是可扩展的,如果没有文档记录的话,它还可以容纳一个完全外部的应用程序,该应用程序可以获取复制的文本、转换文本并将其粘贴回SSMS,而无需打开编辑器、粘贴、编辑、复制和粘贴回SSMS

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


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

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

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

如果右键单击表并选择“脚本表”,然后选择“插入”、“更新”或“删除”选项,SQL server将生成此格式的脚本

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


MSDN上有一个解释如何开始使用模板的代码。

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

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

脚本呢

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

使用自动热键播放击键 正则表达式搜索和 替换,或 将模板复制到 打开剪贴板并对其进行操作 直接在自动热键之前 把它贴回去。 我相信第一个选择会奏效。我没有试过第二个


给出如何编写自动热键脚本以侦听键盘和弦的指示。

正在查找其他内容,但发现了此问题。如果您仍在寻找一些东西,请尝试SSMS toolpack:它有宏和其他一些整洁的东西。而且是免费的

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

对于2016年SSMS,您可以使用我的分机。它支持宏录制/回放和用于编辑器文本操作的自定义C/VB命令。

这对我没有帮助。我也可以手动编辑脚本。SSMS Tools Pack是一个很好的外接程序,但我认为它没有宏。作为一个警告,它对于SSMS 2012及以上版本不再是免费的。谢谢,我会看一看,我相信它在某个时候会很有用,但我很少需要Visual Studio中的宏,因为您的产品似乎是针对它的。我正在寻找宏的是SQL Server Management Studio。@ProfK是的,Visual Commander最初是为VS开发的,但最近的版本增加了对SSMS 2016的支持。现在安装。哦,不。它不会安装;日志文件表明不支持此VSIX清单格式。然后,VSIXInstaller.NoAppliebleSkuseException:此扩展无法安装在任何当前安装的产品上。。我有SSMS 13.0.15000.23,但有更新可用。也许我需要更新。@ProfK感谢您报告此问题。2016年6月的SSMS确实给出了这个错误。您需要更新到7月或8月版本。
INSERT INTO [TABLE]
           ([fieldOne]
           ,[fieldTwo])
     VALUES
           (<fieldOne, datetime,>
           ,<fieldTwo, real(24,0))
INSERT INTO [TABLE]
           ([fieldOne]
           ,[fieldTwo])
     VALUES
           (@fieldOne
           ,@fieldTwo)