SQLserver 如何給表新建觸發器
一. 需要資料庫hzppb(漢字拼音表)和Xsxxb(學生資訊表)
二. 對Xsxxb進行更新時的觸發器
SQL
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER update_xmsx_after_update_xsxxb_xm
ON dbo.Xsxxb
AFTER UPDATE --在更新資料時對表中資料進行更新
AS
BEGIN
IF UPDATE(xm) --如果表中的xm欄位發生了更新,才執行對表中xmsx欄位的更新
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @xsid INT,@xm VARCHAR(50); --定義變數 ,@xm 姓名 可變字串長度為五十 @xsid 學生ID 整型變數
SELECT @xsid=xsid,@xm=xm FROM Inserted;--在執行插入的操作后,在Inserted的臨時表中獲取xsid和xm,并將其賦給@xsid和@xm
UPDATE Xsxxb SET xmsx=dbo.PysxCx(@xm) WHERE xsid=@xsid;-- 更新Xsxxb中的資料,使用函式PysxCx在表hzpyb中查詢@xm對應的xmsx(姓名縮寫),
-- 并當@xsid 和Xsxxb表中的xsid相同時,更新對應的xmsx
-- Insert statements for trigger here
END
else
print '沒有更新姓名,不對表的xmsx進行更新'
END
GO
三. 對表Xsxxb進行更新時的觸發器
USE SSMSTest --使用的資料庫名稱
go
set ANSI_NULLS ON
GO
Set QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER Update_xmsx_after_insert_xsxxb
ON dbo.Xsxxb
AFTER INSERT --在插入資料后對Xsxxb進行更新
AS
BEGIN
SET NOCOUNT ON;
DECLARE @xm VARCHAR(50),@xsid INT; --定義變數,@xm 姓名 可變字串長度為五十 @xsid 學生ID 整型變數
SELECT @xsid=xsid,@xm=xm FROM Inserted; --在執行插入的操作后,在Inserted的臨時表中獲取xsid和xm,并將其賦給@xsid和@xm
UPDATE Xsxxb SET xmsx=dbo.PysxCx(@xm) where xsid=@xsid; -- 更新Xsxxb中的資料,使用函式PysxCx在表hzpyb中查詢@xm對應的xmsx(姓名縮寫),
-- 并當@xsid 和Xsxxb表中的xsid相同時,更新對應的xmsx
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/137024.html
標籤:python
上一篇:史上第二全的Mysql函式匯總
下一篇:【SSM -MyBatis篇03】MyBatis Generator(MBG)配置屬性詳解(基于MyBatis3) - 逆向生成 - 配置MBG模板
