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

时间:2012-11-29 09:09:53

标签: sql sql-server sql-server-2008

如何在SQL表中获取其他自动编号。 我已经有了一个IDENTITY列,但我需要一个额外的列,它也会自动递增。

3 个答案:

答案 0 :(得分:3)

您可以使用一组ranking functions。例如,您可以使用ROW_NUMBER()函数,如下所示:

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

答案 1 :(得分:1)

如果你有两个自动递增列,那么它们必须总是相差一个常数,所以这样做没有任何价值吗?如果你真的希望它是一个列,那么你可以根据自动递增列的值使它成为一个计算列,

答案 2 :(得分:0)

你可以做这样的事情,

假设您有一个包含columnName ColA的表,这就是您要增加的内容,

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