SQL中如何获取存储过程用return返回的值与判断SQL事务是否执行成功?
2013-12-30 11:17
676 查看
原文出自http://blog.csdn.net/on_my_way20xx/article/details/7276122,此文是转载
1.如何获取存储过程用return返回的值
(1):return 返回一个值
CREATE PROCEDURE testReturn
AS
return 145
GO
--查询分析器中调用
--DECLARE @RC int
--exec @RC=singleValue
--select @RC
(2):output 返回值
CREATE procedure testoutput
@p1 int,
@p2 int output,
@p3 int output ,
@p4 varchar(10) output
as
select @p2 = @p1 *2
select @p3 = @p1 *3
select @p4 = 'sfdsdfsdf'
GO
--查询分析器中调用
--declare @p2_output int
-- execute testoutput 4,@p2_output output
--select @p2_output
--====================================--
--declare @p2_output int,@p3_output int
-- execute testoutput 4,@p2_output output,@p3_output output
-- select @p2_output,@p3_output
(3):返回表
CREATE PROCEDURE tableTestsss
AS
declare @OrderShipperTab TABLE (col1 varchar(80),col2 varchar(80))
INSERT @OrderShipperTab values('11','12')
INSERT @OrderShipperTab values('21','22')
INSERT @OrderShipperTab values('31','32')
INSERT @OrderShipperTab values('42','42')
select * from @OrderShipperTab
GO
--查询分析器中调用
--Create Table #T (col1 varchar(10),col2 varchar(10))
--Insert #T exec tableTestsss
--Select * From #T
--drop table #T
2.如何判断SQL Server事务是否执行成功?
用系统常量@@error在执行每一个sql语句后的值来判断:
begin transaction
delete ...
if @@error<>0
begin
rollback transaction
return
end
insert into ...
if @@error<>0
begin
rollback transaction
return
end
commit transaction
1.如何获取存储过程用return返回的值
(1):return 返回一个值
CREATE PROCEDURE testReturn
AS
return 145
GO
--查询分析器中调用
--DECLARE @RC int
--exec @RC=singleValue
--select @RC
(2):output 返回值
CREATE procedure testoutput
@p1 int,
@p2 int output,
@p3 int output ,
@p4 varchar(10) output
as
select @p2 = @p1 *2
select @p3 = @p1 *3
select @p4 = 'sfdsdfsdf'
GO
--查询分析器中调用
--declare @p2_output int
-- execute testoutput 4,@p2_output output
--select @p2_output
--====================================--
--declare @p2_output int,@p3_output int
-- execute testoutput 4,@p2_output output,@p3_output output
-- select @p2_output,@p3_output
(3):返回表
CREATE PROCEDURE tableTestsss
AS
declare @OrderShipperTab TABLE (col1 varchar(80),col2 varchar(80))
INSERT @OrderShipperTab values('11','12')
INSERT @OrderShipperTab values('21','22')
INSERT @OrderShipperTab values('31','32')
INSERT @OrderShipperTab values('42','42')
select * from @OrderShipperTab
GO
--查询分析器中调用
--Create Table #T (col1 varchar(10),col2 varchar(10))
--Insert #T exec tableTestsss
--Select * From #T
--drop table #T
2.如何判断SQL Server事务是否执行成功?
用系统常量@@error在执行每一个sql语句后的值来判断:
begin transaction
delete ...
if @@error<>0
begin
rollback transaction
return
end
insert into ...
if @@error<>0
begin
rollback transaction
return
end
commit transaction
相关文章推荐
- SQL技巧:如何获取存储过程用return返回的值与判断SQL Server事务是否执行成功?
- SQL中如何获取存储过程用return返回的值与判断SQL事务是否执行成功?
- PHP如何获取刚插入数据的ID 和判断SQL语句是否成功执行
- system函数返回(如何判断调用的shell命令是否执行成功)
- sql事务,在sql2000里判断执行是否成功用@@ERROR 判断
- sql事务,在sql2000里判断执行是否成功用@@ERROR 判断
- 如何判断一条sql(update,delete)语句是否执行成功
- asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
- 我纠结的sql返回受影响行数与判断是否成功的问题
- PHP file_get_contents 判断是否获取成功,查看请求返回头信息
- 在ASP中判断SQL语句是否执行成功 还不错,顶一个
- PHP判断sql语句是否执行成功
- 如何把Action后台是否执行成功返回到页面中
- jdbcTemplate在执行插入操作的时候如何判断是否插入成功?
- shell 中如何判断前一个命令是否执行成功
- 如何在shell脚本中,判断一个基本命令执行是否成功?
- 如何判断Sql agent job 是否执行完成
- 在ASP中判断SQL语句是否执行成功
- 执行一个SQL语句或者存储过程(无事务控制),返回一个内存表
- 如何判断存储过程中,T-SQL语句是否执行?