使用T-SQL命令自动提供ID号

时间:2014-01-26 07:50:14

标签: sql-server tsql

我想自动提供身份证号码,但每个号码前面都会有一个字母。

我在下面编写了命令,但它没有用。

CREATE TABLE
persons
(
ID NVARCHAR(5) PRIMARY KEY NOT NULL 'N' + IDENTITY(1,1),
name NVARCHAR(50),
surname NVARCHAR(50)
)

第一个命令错了,我应该做些什么改变?

1 个答案:

答案 0 :(得分:0)

您应该使用:

  • ID INT IDENTITY(1,1)列,以使SQL Server处理数值的自动增量
  • 计算的,持久的列,将该数值转换为您需要的值

所以试试这个:

CREATE TABLE dbo.Persons
  (ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
   PersonID AS 'P-' + RIGHT('00000' + CAST(ID AS NVARCHAR(5)), 5) PERSISTED,
   .... your other columns here....
  )

现在,每次在表格中插入一行

INSERT INTO dbo.Persons(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

然后SQL Server将自动且安全地增加ID值,而PersonID将包含P-00001P-00002等值。 ....等等 - 自动,安全,可靠,无重复。