sql - 是否可以替换 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 ,在很多地方。
谢谢 :)
解决方案
实现这一目标的方法之一是以编程方式进行:
0) 将所有代码放入某个 NVARCHAR(MAX) 列
1)(*见下面的评论)找到所有的评论代码,并用一些独特的标签(如#$UNIQUETAG$#)替换你的词(“[SuperSec]。”)
2)然后在所有剩余代码中用空字符串替换您的单词(“[SuperSec]。”)
3) 最后,将#$UNIQUETAG$# 替换为您的初始单词 ("[SuperSec].")
所以唯一的问题是第 1 步 - 找到注释代码。如果所有注释都遵循“-- ...”格式并且没有“/* ... */”注释,那么不难找到它 - 它是“--”和行尾之间的任何内容(CHAR( 13)+字符(10))
如果您不想进行编程……您可以调整一些解决方案,例如从 T-SQL 中的文本中删除所有注释,它会查找并删除所有注释。您只需要更改其逻辑,而不是删除评论,它会用唯一标签替换您在评论中的单词。
推荐阅读
- python - 在 for 循环中跳过两次或两次以上的迭代
- c - 在柯南构建步骤中选择构建目标
- php - 在 PHP 中访问 JSON 数据中的值时遇到问题
- arrays - 用于在 Ruby 中循环数组数组的更好语法
- python - 将丢失的数字序列转换为其范围的任何简单方法?
- rest - 如何创建接受查询参数的 ColdFusion REST 端点
- python - 如何在按熊猫分组后计算自定义聚合
- python - 有没有一种简单的方法可以在不重新缩进的情况下注释掉或禁用 python try 语句
- c++ - 函数 SFINAE 重载仅适用于非类型模板参数
- google-maps - 如何让 Drupal Geolocation 8.x.3.2 从视图中显示带有图钉的地图