如何在sql server中创建字符和数字像字母数字的自动增量列?

时间:2016-08-24 06:59:47

标签: sql sql-server-2012

我有一个主键列表,它是从1000开始的数字的自动递增id。

现在我被要求为每个以C20161,C20162,C20163开头的记录制作一个唯一的密钥等等......

所以它实际上是一个自动递增的字母数字键....

我想知道如何在sql中实现相同的功能,我也可以将其更新为现有记录吗?

是'序列'我正在寻找什么或其他什么?

2 个答案:

答案 0 :(得分:1)

为此需要COMPUTED COLUMN

CREATE TABLE TableName(
     ID INT IDENTITY(1,1) NOT NULL,
     NewColumnName AS 'C' + CAST(ID AS VARCHAR(30)),
     .... Other columns list here
)

答案 1 :(得分:0)

我希望这就是你所要求的

首先:我认为你无法编辑主键。

第二:如果要将所有现有数据从int更新为varchar 然后首先需要更改数据库。

之后尝试使用execute

从1001更新为C1001的示例

@key nvarhcar(5)
execute('update table set key = ''C' + @var1 +''' where key = @key')

现在你所需要的只是得到钥匙
用来获取所有密钥。

希望这能帮到你