0

以下のコードでエラーが発生しています

ALTER TABLE ADM_Roles ALTER COLUMN RoleID int IDENTITY (1, 1)

キーワード付近の構文が正しくありませんIDENTITY

4

3 に答える 3

6

既存の列を列に変更することはできません。ID フラグを持つ新しい列IDENTITYを追加する必要があります。

ALTER TABLE dbo.ADM_Roles 
 ADD NewRoleID INT IDENTITY (1, 1)

必要に応じて、後で古い列を削除し、新しい列の名前を古い名前に変更できます。

ALTER TABLE dbo.ADM_Roles DROP COLUMN RoleID

EXEC sp_rename @objName = 'dbo.ADM_Roles.NewRoleID', 
               @newName = 'RoleID', 
               @objType = 'COLUMN'
于 2011-09-09T11:42:27.817 に答える
0

MSDN から

ID の既存の列を変更することはできません。

2 つのオプションがあります。

  1. ID を使用して新しいテーブルを作成し、既存のテーブルを削除します

  2. ID を使用して新しい列を作成し、既存の列を削除します。ただし、これらの列に制約や関係がある場合は特に注意してください。

アプローチ例:

  • このアプローチでは、新しく作成された ID 列の既存のデータ値を保持することはできません。
  • ID列には一連の番号が保持されます

    Alter Table Names Add Id_new Int Identity(1,1)
    Go
    
    Alter Table Names Drop Column ID
    Go
    
    Exec sp_rename 'Names.Id_new', 'ID','Column'
    
于 2011-09-09T11:43:08.340 に答える
-1

「int」という単語を削除する必要があります。

ALTER TABLE ADM_Roles ALTER COLUMN RoleId IDENTITY (1, 1);
于 2011-09-09T11:44:21.230 に答える