SQL Server:自动递增字符 pk

use*_*405 2 sql-server char auto-increment

表上是否可以有一个 char 主键?例如“WC001”将自动加1,因此pk的下一条记录将是“WC002”,依此类推。

谁能给我举个例子吗?

谢谢

mar*_*c_s 5

不直接 - 但您可以有一个正常的INT IDENTITY自动递增数字 ID,然后定义一个计算持久列(SQL Server 2005 及更高版本) - 类似于:

CREATE TABLE dbo.YourTable
(ID INT IDENTITY(1,1),
 CharID AS 'WC' + RIGHT('000' + CAST(ID AS VARCHAR(3)), 3) PERSISTED,

 CONSTRAINT PK_YourTable PRIMARY KEY(CharID)
)
Run Code Online (Sandbox Code Playgroud)

向该表中插入值将导致该ID列成为1, 2, 3, 4, 5,..... 并且该CharID列将自动成为WC001, WC002WC003等等。

由于它是持久计算列,因此值始终是最新的,您甚至可以在其上放置索引(如主键)。