将值连接到生成的唯一ID

时间:2012-01-18 02:24:41

标签: sql sql-server

我有一个名为Employee的现有表,必须添加一个新列Employee_IdEmployeeId应为10位唯一编号,并始终以10开头。

例如

1000000000
1000000001
1023456789

所以我需要将一堆独特的10位数ID添加到已有数据的现有表中。

任何人都可以帮我解决这个问题。

4 个答案:

答案 0 :(得分:4)

SELECT 1000000000 + ROW_NUMBER() OVER( ORDER BY YourColumn ) AS 'rownumber',*
    FROM Employee

这将从现有表中获取数据,并为新ID提供额外的列。

答案 1 :(得分:2)

如果您使用的是SQL Server,IDENTITY会帮助您。

http://msdn.microsoft.com/en-us/library/ms186775.aspx

更新:您应该在此处看到讨论,以便更改表格。

Adding an identity to an existing column

答案 2 :(得分:2)

如果您已经拥有整数PK,则可以添加计算列(是否保留)。如果没有pk大于1000000000,它的值将是PK + 1000000000。

答案 3 :(得分:1)

ALTER TABLE YOURTABLE
ADD COLUMNNAME INTEGER IDENTITY(1000000000, 1)

它不会产生所有10 ..但它会产生所有可能性,如果它通过你会得到11 ..但这将是很多数字达到它。

希望有所帮助