如何在nvarchar的sql server中添加自动增量主键?

Gre*_*ari 3 sql-server sql-server-2008 sqldatatypes

如何nvarchar在SQL Server 2008 Express中使用数据类型生成自动增量主键?我想要我的输出主键如:

 Id        Name
 A1        AAA
 A2        BBB
Run Code Online (Sandbox Code Playgroud)

谢谢

mar*_*c_s 7

你不能直接这样做 - 你可以做的是:

  • 创建一个自动增量列来处理数字部分
  • 添加一个连接字符串前缀和数字的计算列

所以尝试这样的事情:

CREATE TABLE dbo.YourTable
    (ID INT IDENTITY(1,1) NOT NULL,
     StringPrefix NVARCHAR(10) NOT NULL,
     IDandPrefix AS ISNULL(StringPrefix + CAST(ID AS NVARCHAR(10)), 'X') PERSISTED
    )
Run Code Online (Sandbox Code Playgroud)

现在当你插入这样的行:

INSERT INTO dbo.YourTable(StringPrefix) VALUES('A'), ('B'), ('A')
Run Code Online (Sandbox Code Playgroud)

你应该得到这样的行:

ID   StringPrefix   IDandPrefix
 1        A             A1
 2        B             B2
 3        A             A3
Run Code Online (Sandbox Code Playgroud)

您也可以在该IDandPrefix列上定义主键:

ALTER TABLE dbo.YourTable 
ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (IDandPrefix)
Run Code Online (Sandbox Code Playgroud)