还是不行啊.我按你的办法加了进去,代码如下: using System; using System.Data; using System.Data.SqlClient; using Microsoft.SqlServer.Server;namespace liuminnj { public partial class Triggers { // 为目标输入现有表或视图并取消对属性行的注释 // [Microsoft.SqlServer.Server.SqlTrigger //(Name="Trigger1", Target="dbo.XS&dbo.KC&dbo.XS_KC", Event="FOR insert")] //info("版本号=触发器v1.0","创建者=刘敏","时间=2008-5-26","目标=三个表之间的数据一致性") //定义命令字符串 String liumin = " SELECT * FROM inserted a "+ "WHERE a.学号 NOT IN (SELECT b.学号 FROM XS b) OR a.课程号 NOT IN (SELECT c.课程号 FROM KC c)"+ "BEGIN"+"RAISERROR ('违背数据的一致性.', 16, 1)"+"ROLLBACK TRANSACTION"+"END"; public static void Trigger1() { // 用您的代码替换 //传递行为参数并创建触发器上下文类的实例; SqlTriggerContext liuTriggerContext = SqlContext.TriggerContext; //定义SqlPipe 类的实例,用来返回结果集; SqlPipe liuPipe = SqlContext.Pipe; //初始化SqlCommand类的新实例; SqlCommand liuCommand = new SqlCommand(); //
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.SqlServer.Server;namespace liuminnj
{
public partial class Triggers
{
// 为目标输入现有表或视图并取消对属性行的注释
// [Microsoft.SqlServer.Server.SqlTrigger
//(Name="Trigger1", Target="dbo.XS&dbo.KC&dbo.XS_KC", Event="FOR insert")]
//info("版本号=触发器v1.0","创建者=刘敏","时间=2008-5-26","目标=三个表之间的数据一致性")
//定义命令字符串
String liumin = " SELECT * FROM inserted a "+
"WHERE a.学号 NOT IN (SELECT b.学号 FROM XS b) OR a.课程号 NOT IN (SELECT c.课程号 FROM KC c)"+
"BEGIN"+"RAISERROR ('违背数据的一致性.', 16, 1)"+"ROLLBACK TRANSACTION"+"END";
public static void Trigger1()
{
// 用您的代码替换
//传递行为参数并创建触发器上下文类的实例;
SqlTriggerContext liuTriggerContext = SqlContext.TriggerContext;
//定义SqlPipe 类的实例,用来返回结果集;
SqlPipe liuPipe = SqlContext.Pipe;
//初始化SqlCommand类的新实例;
SqlCommand liuCommand = new SqlCommand();
//
if (liuTriggerContext.TriggerAction == TriggerAction.Insert)
{
liuCommand.CommandText = "exec liumin"; }
SqlContext.Pipe.Send("触发器已经完成任务!");
}
}}
根本就不行