SQL Server 错误:'MODIFY' 附近的语法不正确。在我的查询中

use*_*249 2 t-sql sql-server

这是我试图执行的查询

use [warz]
go

ALTER TABLE dbo.items_lootdata
MODIFY TABLE [RecordID] [int] IDENTITY(1,1) NOT NULL
go
Run Code Online (Sandbox Code Playgroud)

我得到了错误:

消息 102,级别 15,状态 1,第 3 行
“修改”附近的语法不正确。

有任何想法吗?

Abh*_*nav 5

添加一个新列:

use [warz]
go


ALTER TABLE dbo.items_lootdata
ADD [RecordID] [int] IDENTITY(1,1) NOT NULL
go
Run Code Online (Sandbox Code Playgroud)

修改现有列:

use [warz]
go

-- remember you cannot alter an existing column to
-- identity, following is only for syntax
ALTER TABLE dbo.items_lootdata
ALTER COLUMN [RecordID] [int] IDENTITY(1,1) NOT NULL
go
Run Code Online (Sandbox Code Playgroud)

需要注意的一件事是,更改现有列以及 Identity 中的列是相当棘手的。

编辑 1:评论ALTER语法以正确突出marc_s指出的问题

可以在此答案中找到相关解决方案。

  • 您 **不能** 更改现有列以向其中添加 `IDENTITY` - 不起作用。如果您希望它是 `IDENTITY`,则需要添加一个 **new** 列 (2认同)