SQL服务器,使现有列成为主列并设置为自动增量
我有一个旧的SQL服务器表,有5000行。它有一个名为SQL服务器,使现有列成为主列并设置为自动增量,sql,sql-server,Sql,Sql Server,我有一个旧的SQL服务器表,有5000行。它有一个名为OrderID的列,其数据类型为int。但是此表没有主键,并且排序顺序中没有OrderID。您能告诉我如何将此OrderID列作为主键并使其自动递增吗您不能向现有列添加标识。 最好的选择是创建一个具有相同结构和标识列的新表,设置identity\u insert on,然后将旧记录复制到新记录中 签出无法为现有列设置自动增量。只有在压缩版afaik中才有可能。请查看此相关问题:旧SQL服务器表…。SQL Server数据库的版本是什么?是否希
OrderID
的列,其数据类型为int
。但是此表没有主键,并且排序顺序中没有OrderID
。您能告诉我如何将此OrderID
列作为主键并使其自动递增吗您不能向现有列添加标识。
最好的选择是创建一个具有相同结构和标识列的新表,设置identity\u insert on
,然后将旧记录复制到新记录中
签出无法为现有列设置自动增量。只有在压缩版afaik中才有可能。请查看此相关问题:
旧SQL服务器表…
。SQL Server数据库的版本是什么?是否希望自动递增的值从表中当前orderID的最大值开始?您使用的SQL Server版本是什么?如果是SQL 2012或更高版本,您可以使用(以及其他一些步骤)来实现您的目标。如果您需要更多详细信息,请告诉我。这是一个很好的解决方案,适用于小表格,如OP正在使用的表格。不过,对于真正大的桌子来说,这并不太好。我会考虑一个序列,而不是SQL 2012或更高版本。如果序列功能不可用,那么可能在同一个表中有一个“temp”列(带有IDENTITY属性)……仔细查看您提供的链接后,我发现“temp”列作为选项2出现在这里。那会得到我的选票。