--1、默認情況下,SQL Server中的CLR是關閉的,所以我們需要執行如下命令打開CLR: exec sp_configure 'clr enabled',1 reconfigure GO -- DROP FUNCTION dbo.fnScoketSend --刪除Function -- drop assembly SqlDependency --刪除Dependency -- create assembly SqlDependency FROM 'E:\SqlDependency.dll' WITH PERMISSION_SET = UNSAFE --1、創建clr依賴 CREATE FUNCTION dbo.fnScoketSend --2、創建Function ( @Content as nvarchar(MAX) ) RETURNS nvarchar(MAX) AS EXTERNAL name [SqlDependency].[SqlDependency.Notice].[ScoketSendContent] --DROP TRIGGER dbo.notify_trigger -- 3、創建表觸發器 CREATE TRIGGER notify_trigger ON [dbo].[Sample] AFTER INSERT, DELETE, UPDATE AS BEGIN /* update觸發器會在更新數據后, 將更新前的數據保存在deleted表中,更 新后的數據保存在inserted表中。 */ DECLARE @UpdateID NVARCHAR(20) DECLARE @UpdateContent Varchar(MAX) SET @UpdateID=(SELECT Deleted.Id FROM Deleted) SET @UpdateContent=(SELECT Inserted.UserAddr FROM Inserted) SELECT dbo.fnScoketSend(@UpdateContent) END --4、測試 INSERT INTO Sample(UserName,UserAddr,AddDate) VALUES('張三','深圳市南山區蛇口',GETDATE()) SELECT * FROM Sample