Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL服务器,使现有列成为主列并设置为自动增量_Sql_Sql Server - Fatal编程技术网

SQL服务器,使现有列成为主列并设置为自动增量

SQL服务器,使现有列成为主列并设置为自动增量,sql,sql-server,Sql,Sql Server,我有一个旧的SQL服务器表,有5000行。它有一个名为OrderID的列,其数据类型为int。但是此表没有主键,并且排序顺序中没有OrderID。您能告诉我如何将此OrderID列作为主键并使其自动递增吗您不能向现有列添加标识。 最好的选择是创建一个具有相同结构和标识列的新表,设置identity\u insert on,然后将旧记录复制到新记录中 签出无法为现有列设置自动增量。只有在压缩版afaik中才有可能。请查看此相关问题:旧SQL服务器表…。SQL Server数据库的版本是什么?是否希

我有一个旧的SQL服务器表,有5000行。它有一个名为
OrderID
的列,其数据类型为
int
。但是此表没有主键,并且排序顺序中没有
OrderID
。您能告诉我如何将此
OrderID
列作为主键并使其自动递增吗您不能向现有列添加标识。 最好的选择是创建一个具有相同结构和标识列的新表,设置
identity\u insert on
,然后将旧记录复制到新记录中


签出

无法为现有列设置自动增量。只有在压缩版afaik中才有可能。请查看此相关问题:
旧SQL服务器表…
。SQL Server数据库的版本是什么?是否希望自动递增的值从表中当前orderID的最大值开始?您使用的SQL Server版本是什么?如果是SQL 2012或更高版本,您可以使用(以及其他一些步骤)来实现您的目标。如果您需要更多详细信息,请告诉我。这是一个很好的解决方案,适用于小表格,如OP正在使用的表格。不过,对于真正大的桌子来说,这并不太好。我会考虑一个序列,而不是SQL 2012或更高版本。如果序列功能不可用,那么可能在同一个表中有一个“temp”列(带有IDENTITY属性)……仔细查看您提供的链接后,我发现“temp”列作为选项2出现在这里。那会得到我的选票。