Sql server 重命名列:在';SP#U重命名';。?

Sql server 重命名列:在';SP#U重命名';。?,sql-server,sp-rename,Sql Server,Sp Rename,我试图将Day重命名为GT,但收到了错误 “SP_RENAME”附近的语法不正确 SQL Server Management Studio表示错误出现在SP\u RENAME 注意:除了sp_renamesp_rename不是ALTER TABLE语句的一部分之外,我还可以选择其他选项。它是一个系统存储过程,因此应该使用EXEC/EXECUTE语句调用它,如下所示: ALTER TABLE [TEMP] SP_RENAME '[TEMP].[Day]', 'GT', 'COLUMN' (不带a

我试图将
Day
重命名为
GT
,但收到了错误

“SP_RENAME”附近的语法不正确

SQL Server Management Studio表示错误出现在
SP\u RENAME


注意:除了sp_rename

sp_rename
不是
ALTER TABLE
语句的一部分之外,我还可以选择其他选项。它是一个系统存储过程,因此应该使用
EXEC
/
EXECUTE
语句调用它,如下所示:

ALTER TABLE [TEMP]
SP_RENAME '[TEMP].[Day]', 'GT', 'COLUMN'

(不带
alter table temp
位)

您需要使用EXEC启动每个SP_重命名,EXEC为@juergen d引用的答案工作

exec SP_RENAME '[TEMP].[Day]', 'GT', 'COLUMN'

我还要在那里添加EXEC,以防OP将它复制到一个批中,而它不是第一个语句。@ericf就在juergen放的地方,请不要说“它不工作了”-“它不工作”是什么意思?你收到错误信息了吗?如果是的话,复制并粘贴它,这样我们就知道你的意思了。找不到,所以只要不使用exec调用
sp_rename
,只要它是唯一的语句,似乎就可以工作。但是,当我将此语句移动到条件中(以确保该字段尚未重命名)时,我必须添加
exec
,如图所示。不能使用ALTER TABLE更改列名。
PRINT N'Modifying Schema for SAMPLE_TABLE started'
DECLARE @COLNAME_DEAL_TERM VARCHAR(200) ;
SET @COLNAME_DEAL_TERM = 'SAMPLE_COL_NAME';

IF COL_LENGTH('SAMPLE', @COLNAME_DEAL_TERM ) IS NULL
BEGIN
    exec SP_RENAME 'SAMPLE.portfolio',@COLNAME_DEAL_TERM , 'COLUMN';
END;
GO