sql-server – 存储过程OUT参数始终返回NULL
发布时间:2020-05-24 00:07:50 所属栏目:MsSql 来源:互联网
导读:我的存储过程返回预期值,但OUT参数不返回任何内容.在程序退出之前打印out参数的值,参数的值设置并且看起来很棒.那么为什么我的测试代码没有得到任何价值呢? USE MyDBGOEXECUTE sp_addmessage @msgnum = 51001, @severity = 16, @msgtext = NResource NOT Ava
|
我的存储过程返回预期值,但OUT参数不返回任何内容.在程序退出之前打印out参数的值,参数的值设置并且看起来很棒.那么为什么我的测试代码没有得到任何价值呢? USE MyDB
GO
EXECUTE sp_addmessage
@msgnum = 51001,@severity = 16,@msgtext = N'Resource NOT Available',@lang = 'us_english',@replace = REPLACE
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetNewFileNumber]') AND type in (N'P',N'PC'))
DROP PROCEDURE [dbo].[GetNewFileNumber]
GO
CREATE PROCEDURE dbo.GetNewFileNumber
(
@NextFileNum nvarchar(11) = NULL output
)
AS
BEGIN
set transaction isolation level serializable
begin transaction
declare @LockResult int;
declare @CurrentDate date;
declare @FileNumberDate date;
declare @FileNumber int;
execute @LockResult = sp_getapplock
@Resource = 'GetNewFileNumber_TRANSACTION',@LockMode = 'Exclusive',@LockTimeout = 0
if @LockResult <> 0
begin
rollback transaction
raiserror ( 51001,16,1 )
return
end
set @CurrentDate = CONVERT (date,GETUTCDATE());
select @FileNumberDate = filedate,@FileNumber = fileCount from dbo._globalCounters;
if @FileNumberDate != @CurrentDate
begin
set @FileNumberDate = @CurrentDate;
set @FileNumber = 0;
end
set @FileNumber = @FileNumber + 1;
update dbo._globalCounters
set fileDate = @FileNumberDate,fileCount = @FileNumber;
set @NextFileNum = convert(nvarchar(6),@FileNumberDate,12) +
'-' +
RIGHT('00'+convert(nvarchar(2),@FileNumber),2);
execute sp_releaseapplock 'GetNewFileNumber_TRANSACTION'
commit transaction
print 'filenum:' + @NextFileNum
return @FileNumber;
END
GO
--Test the procedure
DECLARE @return_value int
DECLARE @out_value nvarchar(11)
EXEC @return_value = [dbo].[GetNewFileNumber] @out_value
SELECT 'Return Value' = @return_value,'Out Value' = @out_value -- Out value always returns null?!
GO
解决方法调用它时,需要将其标记为输出参数EXEC @return_value = [dbo].[GetNewFileNumber] @out_value OUTPUT (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 防止SQLSERVER的事件探查器跟踪软件
- ef-code-first – 使用共享主键关联时EF 4.1 Code中的级联删
- sql – 在多对多关系中查找具有完全匹配的记录
- sql – Sybase IQ – 如何在不包装文本的情况下显示存储过程
- windows mysql 自动备份的几种方法汇总
- SQL Report Builder 报表里面的常见问题分析
- sql-server – 事务块是否会降低SQL Server的性能?
- SQL Server 自动更新统计信息的基本算法
- sql – reportviewer条形图,条形宽度不正确
- sql-server – DL380p-Gen8 D2700适用于SQL 2012标准版的适
推荐文章
站长推荐
热点阅读
