表zybh结构:工号 员工姓名 级别
1 张三 系统
2 李四 一般zybh上的触发器(update):
if @old_jb='系统'
rollback transaction
else
....当前语句:
update zybh set 级别='一般' where 员工姓名='张三'
执行后,显示:查询完成
经检查,数据并没有修改,如何让客户端得知修改是否成功呢?恳请指教!!!
1 张三 系统
2 李四 一般zybh上的触发器(update):
if @old_jb='系统'
rollback transaction
else
....当前语句:
update zybh set 级别='一般' where 员工姓名='张三'
执行后,显示:查询完成
经检查,数据并没有修改,如何让客户端得知修改是否成功呢?恳请指教!!!
GO
create table A
(
UserID int ,
UserName varchar(100),
FlagName varchar(20)
)
go
insert into A select 1 ,'张三','系统'
GO
insert into A select 2 ,'李四','一般'GO
SELECT * FROM Ago
drop trigger trigA
go
create trigger trigA ON A
FOR UPDATE
AS
update A set FlagName='系统' where UserID in (select UserID from deleted where FlagName='系统')
update A set FlagName='一般' where UserName='张三'
SELECT * FROM A
if update([级别])
...
--如果修改的是级别列。
union all select 2,'李四','一般'if exists (select name from sysobjects where name='trig_update_zybh')
drop trigger trig_update_zybh
create trigger trig_update_zybh
on zybh
for update
as
if update("级别")
begin
print '修改成功!修改的信息后的信息为:'
select * from zybh
end
else
print '修改失败!'update zybh set 级别='一般' where 员工姓名='张三'
用前端的程序来捕获数据库发来的信息就可以了 我已经有一个方法可将信息发到客户端,这个问题基本解决了,但我想知道如何笑青天兄弟所说的'用前端的程序来捕获数据库发来的信息就可以了 '的具体方法,请指教!
如果成功,有两种情况,一种是真的成功了,一种是没真的成功(服务器捕捉后进行了回液),对成功的情况返回一个临时表到前台,信息就写在这个表上,检查这个表就可以了;这样做在前台需要做一些书写规则
应用程序利用ADO获得数据集结果
根据结果输出提示信息给用户SQL语句中
if update("级别")
begin
select 1
--select * from zybh
end
else
select 0
begin
rollback transaction
raiseerror('出错',16,1)
return
end
else
if @old_jb='系统'
rollback transaction
else
....
这个代码贴出来,估计是这个触发器中的rollback transaction回滚了update