SQL Server 2008 と Navicat を使用しています。SQL を使用してテーブル内の列の名前を変更する必要があります。
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
このステートメントは機能しません。
SQL Server 2008 と Navicat を使用しています。SQL を使用してテーブル内の列の名前を変更する必要があります。
ALTER TABLE table_name RENAME COLUMN old_name to new_name;
このステートメントは機能しません。
使用するsp_rename
EXEC sp_RENAME 'TableName.OldColumnName' , 'NewColumnName', 'COLUMN'
参照: SQL SERVER – 列名またはテーブル名の名前を変更する方法
ドキュメント: sp_rename (Transact-SQL)
あなたの場合は次のようになります。
EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'
値を一重引用符で囲むことを忘れないでください。
の代わりにSQL
、Microsoft SQL Server Management Studio でこれを行うことができます。GUI を使用したいくつかの簡単な方法を次に示します。
列をゆっくりとダブルクリックします。列名が編集可能なテキスト ボックスになります。
列を右クリックし、コンテキスト メニューから [名前の変更] を選択します。
例えば:
この方法は、一度に複数の列の名前を変更する必要がある場合に適しています。
例えば:
注: OPがSQLソリューションを具体的に要求したことは知っていますが、これは他の人に役立つかもしれないと思いました:)
試す:
EXEC sp_rename 'TableName.OldName', 'NewName', 'COLUMN'
テーブルのスキーマも指定する必要があります。そうしないと、次のエラーが発生する可能性があります。
メッセージ 15248、レベル 11、状態 1、プロシージャ sp_rename、行 238 パラメータ @objname があいまいであるか、要求された @objtype (COLUMN) が間違っています。
展開スクリプトの場合は、追加のセキュリティを追加することもお勧めします。
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';