在SQL Server 2000中自动生成函数

时间:2010-10-10 05:17:20

标签: sql-server sql-server-2000

我有一张名为'客户'的表。

此表包含名为“CustomerNo”的每个客户的唯一标识字段。 它应采用以下格式:首先是字母表,从A-Z开始。

然后是一个从1-9999开始的四位数字,下一个是从1-999开始的三位数字。这是一个独特的字段。所以它不会在表Customer中重复。

例如:A1000-100。

是否有任何函数可以生成此格式?

Table structure
-----------------------
CustomerID         CustomerName          CustomerNo

1                 John                   A1000-100
2                 Sajan                  A1001-100

1 个答案:

答案 0 :(得分:2)

您可以使用普通的自动递增标识列和以下公式(可能在派生列中)将其映射到显示格式。

CHAR((id-1)/9999/999 + 65) + 
RIGHT('0000' + CAST(1 + (id-1)%(999*9999)/999 AS VARCHAR(4)),4) + 
'-' + 
RIGHT('000' + CAST(1 + (id-1)%999 AS VARCHAR(3)),3)

这避免了您必须自己处理任何并发问题。