日期:2014-05-17  浏览次数:20459 次

我想我可能退步了,你们感受下
今天给一个库里的一些以Beijin_开头的表改名,将Beijin_改成BJ_
我想应该是这样的:
EXEC sp_rename 'Beijin_customers', 'Bj_customers' 

由于有很多表,于是我打算利用sys.tables拼串:
select name from sys.tables where name like 'Beijing%'

然后。。。
5分钟没拼出来

这是为什么?










................以下是广告.........

------解决方案--------------------
语句是没有问题的,可能是表被锁住了,也不会是拼写的问题
------解决方案--------------------
多个字母很正常,呵呵~5分钟很了不起了~我搞过几个小时的
------解决方案--------------------
大叔你太谦虚了
------解决方案--------------------
坐等结果
------解决方案--------------------
太正常了,多个字母嘛。。。俺们也常干这事。。。。
------解决方案--------------------
大牛谦虚了,膜拜一下.

------解决方案--------------------

------解决方案--------------------
换做我 一个小时拼不出来。
------解决方案--------------------
我也不会弄,我只能查询出来,然后再复制一遍。

select 'EXEC sp_rename '''+name+''', '''+replace(name,'Beijin','Bj')+'''' from sys.tables where name like 'Beijin%'
/*
EXEC sp_rename 'Beijin_ba', 'Bj_ba'
EXEC sp_rename 'Beijin_customers', 'Bj_customers'
*/

------解决方案--------------------
这个功能挺实用的,建议可以做个函数出来,SQL SERVER就应该提供这样的批量修改的功能