sql - 编辑所有 View 和存储过程,查找和替换?

标签 sql sql-server database

有没有一种简单的方法可以在我的 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/

相关文章:

sql-server - 在 SSIS 中使用合并任务的指南

java - 是否建议从jsp页面调用java dao类方法

database - 如何计算数据库连接池的大小?

iphone - 在 OS X 服务器上运行的数据库将与 iOS 上的核心数据很好地同步?

php - DELETE 查询的 SQL 语法错误

sql-server - 了解 SQL 读取已提交和读取未提交

sql - 我可以限制 Auto_Increment 列不接受来自外部的值吗?

c# - EF Core "Cannot insert explicit value for identity column"尽管 IDENTIY_INSERT 设置为 ON

java - 使用参数化和准备好的语句访问数据库

MySQL 可选约束