具有标识的SQL表中的其他自动编号

具有标识的SQL表中的其他自动编号,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,如何在SQL表中获取额外的自动编号。 我已经有一个标识列,但我需要一个附加列,该列也可以自动递增。有一组标识列可用于此。例如,您可以像这样使用ROW_NUMBER函数: SELECT *, ROW_NUMBER() OVER (ORDER BY somefield) rownum FROM table; 您可以使用一组。例如,您可以像这样使用ROW_NUMBER函数: SELECT *, ROW_NUMBER() OVER (ORDER BY somefield) rownum FROM ta

如何在SQL表中获取额外的自动编号。 我已经有一个标识列,但我需要一个附加列,该列也可以自动递增。

有一组标识列可用于此。例如,您可以像这样使用ROW_NUMBER函数:

SELECT *, ROW_NUMBER() OVER (ORDER BY somefield) rownum
FROM table;
您可以使用一组。例如,您可以像这样使用ROW_NUMBER函数:

SELECT *, ROW_NUMBER() OVER (ORDER BY somefield) rownum
FROM table;

你可以这样做

假设您有一个columnName为ColA的表,这是您想要增加的

INSERT INTO tableName (colA, colB)
SELECT  COALESCE((SELECT MAX(colA) + 1 FROM tableName),1) as ColA, 
        'colBValue' AS colB
FROM tableName

你可以这样做

假设您有一个columnName为ColA的表,这是您想要增加的

INSERT INTO tableName (colA, colB)
SELECT  COALESCE((SELECT MAX(colA) + 1 FROM tableName),1) as ColA, 
        'colBValue' AS colB
FROM tableName

如果您有两个自动递增的列,那么它们必须始终相差一个常量,所以正确执行此操作不会有任何价值?如果您真的希望它是一列,那么您可以根据自动递增列的值将其设置为计算列。

如果您有两个自动递增列,那么它们必须始终相差一个常量,所以这样做不会有任何价值,对吗?如果您真的希望它是一个列,那么您可以根据自动递增列的值将其设置为计算列,

我可以在存储过程中使用它吗?@Josefvz您可以在任何地方使用这些函数集。它们是Transact-SQL语言中的内置函数,就像任何其他函数一样,您可以在任何地方使用它。在存储过程、udf、视图等中……我能在存储过程中使用它吗?@Josefvz您可以在任何地方使用这些函数集。它们是Transact-SQL语言中的内置函数,就像任何其他函数一样,您可以在任何地方使用它。在存储过程、udf、视图等中。。