SQL Server 2008:更改表查询

发布于 2024-12-03 18:34:22 字数 150 浏览 0 评论 0原文

我收到以下代码的错误:

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

关键字 IDENTITY 附近的语法不正确。

I am getting error for the below code

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

Incorrect syntax near the keyword IDENTITY.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

断爱 2024-12-10 18:34:22

无法将现有列更改为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'

You cannot change an existing column into an IDENTITY column - you will need to add a new column that has the identity flag:

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

If you need to, you can later on drop the old column and rename the new column to the old name:

ALTER TABLE dbo.ADM_Roles DROP COLUMN RoleID

EXEC sp_rename @objName = 'dbo.ADM_Roles.NewRoleID', 
               @newName = 'RoleID', 
               @objType = 'COLUMN'
金兰素衣 2024-12-10 18:34:22

从MSDN

你不能更改现有的身份列。

你有两个选择,

  1. 创建一个带有identity &的新表。删除现有表

  2. 创建一个包含标识和名称的新列删除现有列但是
    当这些列有任何约束/关系时要特别小心。

示例方法:

  • 在此方法中,您无法在新创建的标识列上保留现有数据值;
  • 标识列将保存数字序列

    更改表名称添加 Id_new Int Identity(1,1)
    去
    
    更改表名称删除列 ID
    去
    
    Exec sp_rename 'Names.Id_new', 'ID','列'
    

From the MSDN

You can't alter the existing columns for identity.

You have 2 options,

  1. Create a new table with identity & drop the existing table

  2. Create a new column with identity & drop the existing column But
    take special care when these columns have any constraints / relations.

Example approach:

  • In this approach you can’t retain the existing data values on the newly created identity column;
  • The identity column will hold the sequence of number

    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'
    
爱*していゐ 2024-12-10 18:34:22

你必须删除“int”这个词。

ALTER TABLE ADM_Roles ALTER COLUMN RoleId IDENTITY (1, 1);

you have to remove the word "int".

ALTER TABLE ADM_Roles ALTER COLUMN RoleId IDENTITY (1, 1);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文