首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

批量更改储存过称

2012-09-05 
批量更改存储过称原因是这样的,由于服务器的原因,必须把数据库改个名字,原来叫KIDDB改名后是 s04235db但原

批量更改存储过称
原因是这样的,由于服务器的原因,必须把数据库改个名字,原来叫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 '+@proname+'')    select @str=@str+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 

热点排行