CLR触发器

using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;

public partial class Triggers
{
    // 为目标输入现有表或视图并取消对属性行的注释
    [Microsoft.SqlServer.Server.SqlTrigger (Name="Trigger1", Target="Unit_E", Event="FOR INSERT")]
    public static void Trigger1()
    {
        SqlPipe sp = SqlContext.Pipe;
        string sql = "insert into Unit_E1 select * from inserted";
        using (SqlConnection conn = new SqlConnection("context connection=true"))
        {
            conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = conn;
            cmd.CommandText = sql;
            SqlDataReader rdr = cmd.ExecuteReader();
            sp.Send(rdr);
            conn.Close();
        }
        //SqlContext.Pipe.Send("Trigger FIRED");
    }
}

时间: 2024-10-12 18:14:26

CLR触发器的相关文章

SQL Server CLR 使用 C# 自定义存储过程和触发器

这一篇博客接着上一篇博客继续介绍 SQL CLR Stored Procedure 和 CLR Trigger, 上一篇博客介绍了 SQL CLR Function 的使用,以及 CLR 程序集的注册和 CLR Function 的注册. 我的上一篇博客:SQL Server CLR 使用 C# 自定义函数 四.CLR Stored Procedure 接下来在之前的项目选择添加新项,选择 SQL CLR C# 存储过程. public partial class StoredProcedure

数据库-- 触发器

触发器是特殊的存储过程,它的执行不由程序调用,也不是手动启动,而是由事件来触发,比如当对一个表进行操作(INSERT.UPDATE.DELETE等,不包括SEARCH)时就会被激活,从而执行.另外一个与存储过程不同的地方在于,存储过程更多的是为了返回数据,而触发器更多的作用是维护数据完整性.所以触发器经常用于加强数据的完整性约束和业务规则等. 触发器有三种常规的类型:DML触发器.DDL触发器和登陆触发器. DDL触发器:当服务器或数据库中发生数据定义语言(DDL)事件时会调用DDL触发器. 登

SqlServer——触发器

一:触发器基本知识  触发器是一种特殊的存储过程,但没有接口(输入输出参数),触发器是引发它们的事务的一部分,因为SqlServer自动将引发它们的SQL语句和触发器作为一个隐式事务,因此当触发器正确执行后,事务才认为是完整的,触发器也可已在触发器内部通过 rollback tran 来回滚事务,当触发的SQL语句是隐式事务时,只回滚引发触发器的SQL语句和触发器:是显式事务时,将撤销从最外层 begin tran 开始的所有操作.所以触发器通常用来实现对表实施复杂的完整性约束和强制业务规则,它

SQL Server 创建触发器(trigger)

触发器简介: 触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手动执行,而是由事件来触发.触发器是当对某一个表进行操作.例如:update.insert.delete这些操作的时候,系统会自动调用执行该表上对应的触发器. 触发器分类: 1.DML( 数据操纵语言 Data Manipulation Language)触发器:是指触发器在数据库中发生 DML 事件时将启用.DML事件是指在表或视图中对数据进行的 insert.update.delete 操作的语句. 2.DDL(数据定义

MSSQL手札二 MSSQL的触发器

触发器,就是在对表做DML操作的时候,触发一些其他的事件,触发器一般用在check约束更加复杂的约束上面,是一种特殊的存储过程,不可以被主动调用. 语法如下: CREATE TRIGGER trigger_name ON { table | view } --加密,加密之后不可以修改,但是可以调用或者删除,具体怎么解密,网上有超长的一段SQL代码,大家可以百度一下SQL存储过程/触发器解密 [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF }

转载——CLR标量函数、表值函数和聚合函数(UDA)

本节主要介绍使用CLR创建标量函数,表值函数和聚合函数. 所谓标量函数指的就是此函数只返回一个值.表值函数返回值是一个表.聚合函数是在select语句中使用的,用来聚合一个结果集,类似于Sum()或是Count()等内置的函数,而且真正的自定义聚合函数目前只能用CLR来实现. 下面的例子使用了SQLServer自带的pubs数据库. 1.CLR标量函数 1.1无参函数     ///     /// 标量函数,不带参数     ///     ///     [Microsoft.SqlServ

[SQL]触发器入门介绍——特殊的存储过程

触发器是一种特殊类型的存储过程,它的功能是在指定的表中的数据发生变化时自动生效. 触发器与普通存储过程的不同之处在于--触发器的执行时由事件触发,而普通存储过程是由命令调用执行(EXEC) SQL Server主要提供了一下两种触发器 1)DML触发器 2)DLL触发器 当数据库中发生数据操作语言DML事件的时候即执行DML触发器.DLL触发器是SQL Server 2005以后新增的触发器类型,它在响应数据定义语言DDL时触发. 主要讲解DML触发器,又分为三种: 1)AFTER触发器,故名思

sqlserver 触发器语法

语法:Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)CREATE TRIGGER [ schema_name . ]trigger_name ON { table | view } [ WITH <dml_trigger_option> [ ,...n ] ]{ FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [

Sql Server 与CLR集成

.NET编程和SQL Server ——Sql Server 与CLR集成 一.SQL Server 为什么要与CLR集成 1. SQL Server 提供的存储过程.函数等十分有限,经常需要外部的代码来执行一些繁重的移植: 2.与CLR集成可将原本需要独立的程序来实现的功能迁移到SQL Server 内部进行数据操作: 3.T-SQL数据查询语言在返回数据集方面很好,但是除此之外表现不佳.与CLR的集成可解决这一问题: 4..NET的操作代码和执行的速度比T-SQL快的很多..NET程序是已经