首页 > 解决方案 > 是否可以替换 SQL Server Management Studio 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 ,在很多地方。

谢谢 :)

标签: sqlsql-serverssmsssms-2014

解决方案


实现这一目标的方法之一是以编程方式进行:

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

1)(*见下面的评论)找到所有的评论代码,并用一些独特的标签(如#$UNIQUETAG$#)替换你的词(“[SuperSec]。”)

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

3) 最后,将#$UNIQUETAG$# 替换为您的初始单词 ("[SuperSec].")

所以唯一的问题是第 1 步 - 找到注释代码。如果所有注释都遵循“-- ...”格式并且没有“/* ... */”注释,那么不难找到它 - 它是“--”和行尾之间的任何内容(CHAR( 13)+字符(10))

如果您不想进行编程……您可以调整一些解决方案,例如从 T-SQL 中的文本中删除所有注释,它会查找并删除所有注释。您只需要更改其逻辑,而不是删除评论,它会用唯一标签替换您在评论中的单词。


推荐阅读