是否可以替换SQL Server Management Studio 2014中注释中没有的单词?

时间:2019-09-09 13:43:37

标签: sql sql-server ssms ssms-2014

我知道在SQL Server Management Studio 2014中,使用Ctrl + H可以让我用一个单词替换另一个单词。

我有一个数据库脚本(创建表,过程,视图等),大约有150000行代码,在此脚本中,我添加了一些额外的注释,其中包含我不想从注释中删除的单词但我想删除T-SQL代码,例如:

-- Comment [SuperSec].[dbo].[tableA]

SELECT X.*
FROM [SuperSec].[dbo].[tableA] X
WHERE X.Id = '0';

我希望它看起来像这样:

-- Comment [SuperSec].[dbo].[tableA]

SELECT X.*
FROM [dbo].[tableA] X
WHERE X.Id = '0';

是否可以使用正则表达式或类似的东西来做到这一点?

更新:

我一开始没有说这个,但是这个词对应于数据库的名称,因此它在很多部分都被引用,不仅在FROM,函数,过程的EXEC,子查询, SELECT的一部分,在很多地方。

谢谢:)

1 个答案:

答案 0 :(得分:0)

实现这一目标的方法之一是通过编程实现:

0)将所有代码放入NVARCHAR(MAX)列

1)(*请参阅下面的注释)查找所有注释的代码,并用诸如#$ UNIQUETAG $#

之类的唯一标记替换您的单词(“ [SuperSec]。”)。

2)然后在所有剩余代码中用空字符串替换您的单词(“ [SuperSec]。”)

3)最后,将#$ UNIQUETAG $#换成您的首字母(“ [SuperSec]。”)

因此,唯一的问题是步骤1-查找注释的代码。如果所有注释都遵循“-...”格式,并且没有“ / * ... * /”注释,则找到它并不难-它在“-”和行尾之间(CHAR( 13)+ CHAR(10))

如果您不想进行编程...可以采用一些解决方案,例如Remove all comments from a text in T-SQL查找并删除所有评论。您只需要更改其逻辑即可,而不是删除注释,而是用唯一标签替换注释中的单词。