SqlServer開啟CLR使用(C#)DLL實現實時Socket通知


 --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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM