Rename column SQL Server 2008

前端 未结 12 2176
名媛妹妹
名媛妹妹 2020-11-27 08:52

I am using SQL Server 2008 and Navicat. I need to rename a column in a table using SQL.

ALTER TABLE table_name RENAME COLUMN old_name to new_name;

12条回答
  •  暗喜
    暗喜 (楼主)
    2020-11-27 09:28

    You should also specify the schema of the table or you might get this error:

    Msg 15248, Level 11, State 1, Procedure sp_rename, Line 238 Either the parameter @objname is ambiguous or the claimed @objtype (COLUMN) is wrong.

    If it is a deployment script I would also recommend adding some additional security to it.

    IF EXISTS (
            SELECT 1
            FROM sys.columns
            WHERE
                name = 'OldColumnName' AND
                object_name(object_id) = 'TableName'
        ) AND
        NOT EXISTS (
            SELECT 1
            FROM sys.columns
            WHERE
                name = 'NewColumnName' AND
                object_name(object_id) = 'TableName'
        )
        EXEC sp_RENAME 'SchemaName.TableName.OldColumnName', 'NewColumnName', 'COLUMN';
    

提交回复
热议问题