环境:SQLServer 2008 R2
问题:当调用存储过程sp_rename出现“参数@objname不明确或所声明的@objtype (column)有误”。
解决:
看以下几条命令,如果先执行前两句,再接着执行第三句会出现什么问题?
use Test;--使用数据库
sp_rename 'd_s_t.avg_grade','avg_g','column';--d_s_t是表名,avg_grade是原来的列名,avg_g是新的列名
exec sp_rename 'd_s_t.avg_grade','avg_g','column';
对,你说对了。就会报如上所述的错误。
因为你执行第二句以后你原来的列已经更改了名字,而你再使用原来的列当然找不到了。
如果再要执行第三句,可以把它改为:
exec sp_rename 'd_s_t. avg_g','avg_g_new','column';
PS:呵呵,这个错误只是由于自己的粗心,所以程序员一定要有颗细致的心。
参考资料:
http://topic.csdn.net/u/20080924/10/c6eb8c9f-62d6-4780-b199-58c22e92a2ba.html