sql2008 怎么调试触发器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql2008 怎么调试触发器相关的知识,希望对你有一定的参考价值。
在项目中,单击右键选择"添加"->"触发器",代码如下(validateyear.cs):using
system;
using
system.data;
using
system.data.sqlclient;
using
microsoft.sqlserver.server;
public
partial
class
triggers
//
为目标输入现有表或视图并取消对特性行的注释
[microsoft.sqlserver.server.sqltrigger
(name="validateyear",
target="humanresources",
event="for
insert")]
public
static
void
validateyear()
//
用您的代码替换
sqlconnection
conn
=
new
sqlconnection("context
connection=true");
//定义查询
string
sql
=
"select
count(*)
"
+
"from
inserted
"
+
"where
year(modifieddate)<>2012";
sqlcommand
comm
=
new
sqlcommand(sql,
conn);
//打开连接
conn.open();
//获得行数
int
numbadrows
=
(int)comm.executescalar();
if
(numbadrows
>
0)
//get
the
sqlpipe
sqlpipe
pipe
=
sqlcontext.pipe;
//role
back
and
raise
an
error
comm.commandtext
=
"raiseerror('修改错误',11,1)";
//send
the
error
try
catch
system.transactions.transaction.current.rollback();
conn.close();
用于验证插入的数据是否合法,当插入表humanresources是,如果修改日期的年份不是2012将报错。
另外要注意的是要使用system.transactions.transaction.current.rollback(),必须添加system.transactions的引用 参考技术A 触发器一般在update,delete,insert
时候触发、、、你可以根据你写的触发器。在该表
执行相应的操作~~查看有没有执行触发器里的语句本回答被提问者采纳
以上是关于sql2008 怎么调试触发器的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server2008 触发器中,根据一个表修改另外一个表