create procedure Myproc(@id int,@name nvarchar(20)) as begin insert into tb values(@id,@name) if @@error >0 return 0 return 1 end
if @@error>0 print '1' else print '0'
严重错误程序会中断执行.在检测@@error之前就退出. 最检测要插入的数据,再作插入.
CREATE PROCEDURE AddData @id int, @name varchar(20), @sign int output AS insert into tablename(id,name) values(@id,@name) if not exists(select id from tablename where id=@id) begin select @sign=0 end else begin select @sign=1 end GO
create proce proc_name(@id int,@name nvarchar(30)) as begin insert into tb values(@id,@name) if @@error >0 return 0 return 1 end
通过@@error来判断
成功为0
不成功为非0
返回最后执行的 Transact-SQL 语句的错误代码。语法
@@ERROR返回类型
integer注释
当 Microsoft® SQL Server™ 完成 Transact-SQL 语句的执行时,如果语句执行成功,则 @@ERROR 设置为 0。若出现一个错误,则返回一条错误信息。@@ERROR 返回此错误信息代码,直到另一条 Transact-SQL 语句被执行。您可以在 sysmessages 系统表中查看与 @@ERROR 错误代码相关的文本信息。由于 @@ERROR 在每一条语句执行后被清除并且重置,应在语句验证后立即检查它,或将其保存到一个局部变量中以备事后查看。
as
begin
insert into tb values(@id,@name)
if @@error >0
return 0
return 1
end
print '1'
else
print '0'
最检测要插入的数据,再作插入.
@id int,
@name varchar(20),
@sign int output
AS
insert into tablename(id,name) values(@id,@name)
if not exists(select id from tablename where id=@id)
begin
select @sign=0
end
else
begin
select @sign=1
end
GO
as
begin
insert into tb values(@id,@name)
if @@error >0
return 0
return 1
end