在触发器里写:if ... raiserror('显示用户已经借出了5本书,不能再借了',16,3)在delphi里用 try query1.execSQL; except on e: Exception do begin showmessage('出错' + e.message); exit; end; end; showmessage('执行成功')
因为它是SQL自动调用的,你只能通过类似下面的办法:1.像楼上的,用错误处理.2.创建一个返回结果表,触发器将要返回的结果返回到结果表中,然后读取结果表得到触发器的返回值,例如: --创建测试表 create table tb(id int identity(1,1),name varchar(10))--创建触发器返回结果表 create table t_re(id int identity(1,1),name varchar(10),dt datetime,info varchar(100)) go --创建测试触发器: create trigger t_chk on tb INSTEAD OF insert as if exists(select 1 from inserted where name in(select name from tb)) insert into t_re select name,getdate(),'名称重复' from inserted else insert into tb(name) select name from inserted go--测试 insert into tb values('张三') select * from t_re insert into tb values('张三') select * from t_re--删除测试 drop table tb,t_re
raiserror('显示用户已经借出了5本书,不能再借了',16,3)在delphi里用
try
query1.execSQL;
except
on e: Exception do
begin
showmessage('出错' + e.message);
exit;
end;
end;
showmessage('执行成功')
--创建测试表
create table tb(id int identity(1,1),name varchar(10))--创建触发器返回结果表
create table t_re(id int identity(1,1),name varchar(10),dt datetime,info varchar(100))
go
--创建测试触发器:
create trigger t_chk on tb
INSTEAD OF insert
as
if exists(select 1 from inserted where name in(select name from tb))
insert into t_re select name,getdate(),'名称重复' from inserted
else
insert into tb(name) select name from inserted
go--测试
insert into tb values('张三')
select * from t_re
insert into tb values('张三')
select * from t_re--删除测试
drop table tb,t_re