我想自动提供身份证号码,但每个号码前面都会有一个字母。
我在下面编写了命令,但它没有用。
CREATE TABLE
persons
(
ID NVARCHAR(5) PRIMARY KEY NOT NULL 'N' + IDENTITY(1,1),
name NVARCHAR(50),
surname NVARCHAR(50)
)
第一个命令错了,我应该做些什么改变?
答案 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-00001
,P-00002
等值。 ....等等 - 自动,安全,可靠,无重复。