【问题标题】:Set IDENTITY to existing column将 IDENTITY 设置为现有列
【发布时间】:2019-03-01 18:40:58
【问题描述】:

我有一个具有整数类型的列名 ID 字段的表。它被宣布为身份。它有根据 IDENTITY 的数据。但最近我从该表中删除了 IDENTITY 列。现在我想再次将其更改为 IDENTITY。但是这个查询说语法不正确

Alter table FuleConsumptions alter column  TransactionID INT IDENTITY(1,1);

但我可以在表的属性中使用 SQL 服务器设计器执行相同的任务。 我在这里做错了什么?

【问题讨论】:

  • 你不能这样做——只是不可能。您必须创建一个新列并向其中添加IDENTITY
  • 你需要一张额外的桌子才能让它工作。请参阅此问题的前两个答案(取决于数据集的大小)。 Adding an identity to an existing column

标签: sql sql-server-2008-r2 identity-column alter-column


【解决方案1】:

我认为标识列将保存数字序列,这就是它抛出错误的原因 最好你删除列然后再次创建它并设置 IDENTITY

Alter Table FuleConsumptions Drop Column TransactionID
Go
ALTER TABLE FuleConsumptions
ADD TransactionID int; 
go
Alter table FuleConsumptions alter column  TransactionID INT IDENTITY(1,1);

【讨论】:

  • 无论如何我可以做到这一点而不会丢失列的当前数据?
  • @chathwind 在这种情况下,你不能从 1 开始,你可能会结束
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-03
  • 2012-03-30
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多