当前位置: 代码迷 >> Sql Server >> 批量更改储存过称
  详细解决方案

批量更改储存过称

热度:5   发布时间:2016-04-27 11:35:50.0
批量更改存储过称
原因是这样的,由于服务器的原因,必须把数据库改个名字,原来叫KIDDB
改名后是 s04235db
但原来数据库里面大部分存储过程的 from语句后面都是这样写的

FROM [KIDDB].[dbo].[CityandSchoolReiong]

改了数据库名字以后大部分存储过程都会有错
所以问下各位大哥,有没有什么方法在更改数据库名字的时候,把相关名字去全部改了

或者能写个 语句批量的更把所有存储过程中 [KIDDB]改为[s04235db]

批量去掉也行

------解决方案--------------------
SQL code
declare @var table ( t1 nvarchar(max))declare @str varchar(max)declare @proname varchar(max)declare pro cursor forselect name  from sys.objects where type='P' and is_ms_shipped<>1open profetch next from pro into @pronamewhile @@fetch_status=0begin    set @str=''    delete from @var    insert into @var    exec('sp_helptext [email protected]+'')    select @[email protected]+REPlACE(REPLACE(t1,'CREATE PR','ALTER PR'),'KIDDB','s04235db')+CHAR(10) from @var    print  (@str)--使用时改成exec  (@str)--自己先测试下    fetch next from pro into @pronameendCLOSE proDEALLOCATE pro
  相关解决方案