sql中修改动态表的列名

来源:百度知道 编辑:UC知道 时间:2024/06/01 06:54:20
exec sp_rename '06级三本.F5','理论','column'

语句如上,可以修改.但是我现在想修改动态表,大概的语句如下:
exec sp_rename ''+@table+'.F5','理论','column'
在运行的时候提示"+"有错误.
第一条语句在本机上能正确运行,但是第二条就不行,

我想请问的是,将表名换成参数时要怎么写.
不要用啊,在传动态表名的时候,提示我错误:参数 @objname 不明确或所声明的 @objtype (column)有误。

sp_rename的@objname参数可以是一个字符串,也可以是一个字符串变量.但不可以是两者的混合型.所以,如果要动态修改表,那么可参照如下形式:
declare @objname varchar(50);
set @objname='动态表名'; /*补充解释:这里的'动态表名'就是你原来的@table变量,该变量的值必须是一个明确的表名,如:'06级三本'*/
set @objname=@objname+'.F5';
exec sp_rename @objname,'理论','column';

忘了说一点:'06级三本'这样的表名是不合法的,引用时请加上中括号[],如[06级三本]
修改后的代码如下:
declare @objname varchar(50);
set @objname='['+动态表名+'].F5';
exec sp_rename @objname,'理论','column';

需要使用括号,
呵呵,希望能有帮助,^_^