創(chuàng)建Insert觸發(fā)器
USE [appsmart]
GO
/****** Object: Trigger [dbo].[notify_trigger] Script Date: 01/25/2017 09:31:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----------------創(chuàng)建觸發(fā)器
ALTER TRIGGER [dbo].[notify_trigger] ON [dbo].[Table_Test]
AFTER INSERT
AS
BEGIN
DECLARE @userName NVARCHAR(20) --Insert觸發(fā)器 下面為inserted相當(dāng)于觸發(fā)器的一個(gè)虛擬插入表
set @userName=(select inserted.userName from inserted)
EXEC testProPush @userName ---調(diào)用存儲(chǔ)過程并傳參 如果傳入的參數(shù)未變則不會(huì)觸發(fā)
END
創(chuàng)建存儲(chǔ)過程
USE [appsmart]
GO
/****** Object: StoredProcedure [dbo].[testPro] Script Date: 01/25/2017 09:18:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[testPro](
@userName varchar(50)
)
AS
BEGIN
declare @ServiceUrl as varchar(1000)
PRINT 'http://192.168.0.124:8080/overhaul/iosPush.action?deviceToken='+@userName ---觸發(fā)觸發(fā)時(shí)傳過來的參數(shù)
set @ServiceUrl='http://192.168.0.124:8080/overhaul/iosPush.action?deviceToken='+@userName
Declare @Object as Int
Declare @ResponseText as Varchar(8000)
Exec sp_OACreate'MSXML2.XMLHTTP',@Object OUT;
Exec sp_OAMethod @Object, 'open',NULL,'get',@ServiceUrl,'false'
Exec sp_OAMethod @Object,'send'
Exec sp_OAMethod @Object,'responseText',@ResponseText OUTPUT
Select @ResponseText
Exec sp_OADestroy @Object
END
在表中插入數(shù)據(jù)時(shí)觸發(fā)器會(huì)調(diào)用接口
INSERT INTO [appsmart].[dbo].[Z_UserInfo] (userAccount, userName,userCode) VALUES
('123112', 'de1222','1');
1. 插入時(shí)必須插入userName字段
2. 若第二次插入時(shí)userName字段的值和上次一樣則不會(huì)觸發(fā)觸發(fā)器