当前位置:
首页 > 数据库 > SQL Server 2008数据库 >
-
SQL Server 2008教程之批量替换存储过程内容脚本s
批量替换存储过程内容脚本sp_SqlReplace
开始
在数据库开发过程中,如果某一个表字段名被重命名。那么在使用到该字段的存储过程,对应的表字段名也要修改。
当存在多个存储都有使用该表字段,需要逐个去修改替换,是一件比较繁琐的事情,我们需要一个能实现批量替换的方法。
这里我写了一个批量替换存储过程内容的脚本:
sp_SqlReplace
Use master Go if object_ID('[sp_SqlReplace]') is not null Drop Procedure sp_SqlReplace Go create proc sp_SqlReplace ( @OriginalText nvarchar(max), @CurrentText nvarchar(max) ) as Set Nocount On Declare @Count int=0,@i int=1,@sql1 nvarchar(max),@sql2 nvarchar(max),@objectname sysname; Declare @tblTmp Table(ID int identity primary key,objectID int,objectName sysname) Insert Into @tblTmp(objectID,objectName) Select distinct id,object_name(id) From sys.syscomments Where text like '%'+@OriginalText+'%' Set @Count=@@ROWCOUNT If @Count=0 Return Begin Try Begin Transaction While @i<=@Count Begin Select @sql1='if object_id('''+quotename(objectName)+''') Is Not null Drop '+case when object_id(objectName,N'P') is not null then 'Procedure ' when Coalesce(object_id(objectName,N'FN'),object_id(objectName,N'IF'),object_id(objectName,N'TF')) is not null then 'Function ' when object_id(objectName,N'TR') is not null then 'Trigger ' else 'View 'end+Quotename(objectName) , @sql2=Replace(object_definition(objectID),@OriginalText,@CurrentText), @objectname=objectName From @tblTmp Where ID=@i Exec (@sql1) Print @objectname Exec (@sql2) Set @i+=1 End Commit Transaction Select N'影响到对象有:' As [信息提示] Select 'Exec sp_sql '+objectName As [对象名称],case when object_id(objectName,N'P') is not null then 'Procedure ' when Coalesce(object_id(objectName,N'FN'),object_id(objectName,N'IF'),object_id(objectName,N'TF')) is not null then 'Function ' when object_id(objectName,N'TR') is not null then 'Trigger ' else 'View 'end As [类型] From @tblTmp End Try Begin Catch Rollback transaction throw End Catch Go
调用方法
最新更新
无刷新的聊天室的制作兼谈组件制作和
无刷新的聊天室的制作兼谈组件制作和
开放源码版“.NET”项目启动
Visual Studio.net Beta2安装
.Net边学边讲(三)
.Net边学边讲(二)
.Net边学边讲(一)
关于VS.NET beta1安装问题
NET编译时都做了一些什么
.NET 开发
【15天掌握SQLServer基础】-01 创建、修改
用 Access+Outlook 来采集信息
使用PowerDesigner生成Access数据库
让我们一起用开源数据库和开源框架废弃
随说秋色园从Access升迁到MSSQL过程
当爬虫被拒绝时(Access Denied)
Web API与OAuth:既生access token,何生refres
[认证 & 授权] 6. Permission Based Access Co
Access之C#连接Access
oracle 19c下载和安装教程(database和client)
用XML数据岛解决用户界面问题 - 3
让Asp与XML交互
SOAP应用简介
SOAP应用简介(1)
盖茨从未放弃野心:XML时代我们拥有.Ne
XML DOM初学者指南
XSL对象格式使用指南(四)
XSL对象格式使用指南(三)
XSL对象格式使用指南(二)
XSL对象格式使用指南(一)