• 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
  • 相关阅读:
    小的面试题
    email
    网络
    进程,线程
    周日作业
    Python_day9
    Python_day8
    假期作业
    12/13
    Python_day7
  • 原文地址:https://www.cnblogs.com/smartsmile/p/7668442.html
Copyright © 2020-2023  润新知