有没有一种简单的方法可以在我的 SQL Server 数据库中的每个 View 和存储过程中查找和替换字符串。 我需要将“X United Kingdom”之类的内容替换为“X(UK)”。
最佳答案
需要查看sysobjects和syscomments, View 和存储过程的文本在syscomments中。它们的类型 V = View 和 P = Procedure 在 sysobjects 中
/*Search Stored Procedure and View Text*/
declare @searchString varchar(100)
SELECT @searchString = 'X United Kingdom'
SELECT Distinct
SO.Name, SC.[text]
FROM
sysobjects SO (NOLOCK)
INNER JOIN syscomments SC (NOLOCK) on SO.Id = SC.ID
AND SO.Type IN ('P', 'V')
AND SC.Text LIKE '%' + @searchString + '%'
不幸的是你不能更新系统目录:( 因此,唯一简单的方法是使用脚本生成器,然后在您最喜欢的文本编辑器中搜索和替换。
编辑: 我已经发布了一个生成 ALTER 语句的脚本,但是截断了一个 looong 过程并且不推荐使用 syscomments 等等......等等。我取消了这部分答案。
关于sql - 编辑所有 View 和存储过程,查找和替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1707145/