我有一个名为Asset
的表,列Ast_No PK int
(标识=“是”)和Ast_Number
以及Ast_Date
。
当客户端将数据输入Asset
时,Ast_Number
应由SQL Server自动生成,应该看起来像AST-B-(Ast_No)
。
怎么做?
由于 巴西特。
答案 0 :(得分:1)
添加计算的,持久的列,将该数值转换为您需要的值
所以试试这个:
CREATE TABLE dbo.Asset
(Ast_No INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
Ast_Number AS 'AST-B-' + RIGHT('00000' + CAST(Ast_No AS VARCHAR(5)), 5) PERSISTED,
.... your other columns here....
)
现在,每次在Asset
中插入一行而未指定AstNo
或Ast_Number
的值时:
INSERT INTO dbo.Asset(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)
然后SQL Server将自动且安全地增加Ast_No
值,而Ast_Number
将包含AST-B-00001
,AST-B-00002
等值。 ....
等等 - 自动,安全,可靠,无重复。