批量更改存储过称
原因是这样的,由于服务器的原因,必须把数据库改个名字,原来叫KIDDB
改名后是 s04235db
但原来数据库里面大部分存储过程的 from语句后面都是这样写的
FROM [KIDDB].[dbo].[CityandSchoolReiong]
改了数据库名字以后大部分存储过程都会有错
所以问下各位大哥,有没有什么方法在更改数据库名字的时候,把相关名字去全部改了
或者能写个 语句批量的更把所有存储过程中 [KIDDB]改为[s04235db]
批量去掉也行
[解决办法]
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