在SQL Server中,如何在插入数据后触发事件

时间:2015-06-28 08:26:26

标签: sql-server-2008

我有一个名为Asset的表,列Ast_No PK int(标识=“是”)和Ast_Number以及Ast_Date

当客户端将数据输入Asset时,Ast_Number应由SQL Server自动生成,应该看起来像AST-B-(Ast_No)

怎么做?

由于 巴西特。

1 个答案:

答案 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中插入一行而未指定AstNoAst_Number的值时:

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

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