创建从上一个索引增加的列

Ami*_*mar 3 sql sql-server sql-server-2012

我需要为InvoiceID生成一列.我想像这样保持这个专栏的形式

INV0000001,
INV0000002,
.
.
.
.
INV0000010,
INV0000011,
.
. and so on. 
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,此列随着最后一个索引而增加.我怎样才能做到这一点.

我正在使用SQL Server 2012.

我已经搜索过,但找不到,如何增加这样的数字.

Pரத*_*ீப் 6

尝试使用computed column MSDN

CREATE TABLE Yourtablename
(
    ID int IDENTITY (1,1) NOT NULL,
    InvoiceID AS 'INV'+ right('000000'+cast(ID as varchar(20)),7) PERSISTED
);
Run Code Online (Sandbox Code Playgroud)

SQLFIDDLE DEMO

有关为什么需要在此处persisted 检查计算列的详细信息

  • +1 - 如果您的表经常用于查询,那么您可能需要权衡使计算列保持不变的好处.这样您就不会产生每个查询的计算成本.这是存储与性能的折衷 (2认同)