sqlserver創建使用觸發器


一般地,创建触发器的语法如下: 
Create Trigger触发器名称 
On 表名|视图名    --指定所创建的触发器与某个已存在的表或视图关联  For {Insert,Delete,Update}  --指定触发器的类型(即插入,删除,更新或它们的任意组合) 
As
  sql语句    --指定触发器的动作

工作原理
   对于每个触发器,sql Server都会自动创建2个临时工作表,即inserted表和deleted表,这2个表作为系统的专用表存放于内存中,其结构与被作用的表相同,且在触发行为结束后自动删除
下面分别说明inserted和deleted这二个工作表与客户端发出的Insert,Delete或Update请求的关系。

请求       工作表名称           工作表内容
Insert     Inserted             被插入的行
           Deleted               /

Delete     Inserted             /
           Deleted              被删除的行

Update     Inserted             被插入的行
           Deleted              被删除的行

IF EXISTS (SELECT name
	   FROM   sysobjects
	   WHERE  name = N'triUpdPartsQty'
	   AND 	  type = 'TR')
    DROP TRIGGER  triUpdPartsQty
GO

CREATE TRIGGER triUpdPartsQty
ON  Part_s
FOR  UPDATE
AS

If UPDATE(PS_QTY) OR UPDATE(PS_AVAILABLE)
BEGIN
	update Part_s set UPD_DATE= convert(nvarchar(8),getdate(),112) from Part_s ps
	inner join  Inerted i on ps.P_NO=i.P_NO and ps.S_NO=i.S_NO
END

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...