加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sqlserver存储过程lis参数

发布时间:2020-12-12 13:15:28 所属栏目:MsSql教程 来源:网络整理
导读:ALTER PROCEDURE [dbo].[procedurename] ( ?@stockType ? ? ?int, ?@stockInCode ? ?varchar(50), ?@createUserName varchar(30),? ?@createTrueName varchar(30), ?@listXml ? ? ? ?nvarchar(max),? ?@exceptionMsg ? nvarchar(4000) output --异常信息,无
ALTER PROCEDURE [dbo].[procedurename]
(
?@stockType ? ? ?int,
?@stockInCode ? ?varchar(50),
?@createUserName varchar(30),?
?@createTrueName varchar(30),
?@listXml ? ? ? ?nvarchar(max),?
?@exceptionMsg ? nvarchar(4000) output --异常信息,无异常返回的是NULL,有异常返回具体的异常信息
)
AS
DECLARE @xml xml,
@stockInId bigint

BEGIN


BEGIN TRY -- 异常捕获


--必须放在最前面,紧接着事务点
SET @xml = SUBSTRING(@listXml,39,LEN(@listXml)-38);

BEGIN TRAN

INSERT INTO StockIn(stockType,stockInCode,createUserName,createTrueName,isEnd)
VALUES (@stockType,@stockInCode,@createUserName,@createTrueName,'0')

SELECT @stockInId = @@IDENTITY

INSERT INTO StockInDetail (stockInId,goodsId,goodsCode,goodsNum)?
SELECT @stockInId,c.doc.value('goodsId[1]','varchar(32)'),
? c.doc.value('goodsCode[1]','varchar(50)'),
? c.doc.value('num[1]','int')
FROM @xml.nodes('/nodes/node') c(doc); ??

COMMIT TRAN


END TRY
BEGIN CATCH --异常发生后,相应的事务等处理


--异常信息
set @exceptionMsg = '消息 ' + cast(ERROR_NUMBER() as varchar(50)) + ',级别 '
+ cast(ERROR_SEVERITY() as varchar(50)) + ',状态 '
+ cast(ERROR_STATE() as varchar(50)) + ',过程 ' + 'P_StockInAndStockInDetailAdd'
+ ',第 ' + cast(ERROR_LINE() as varchar(50)) + ' 行'
+ ':' + ERROR_MESSAGE();

ROLLBACK; -- 事务回滚

--异常日志
INSERT INTO Logger(logType,information)
VALUES('ERROR',@exceptionMsg);

END CATCH ? ?


END


java端参数转换

String inputXML = XmlConvertUtil.listToXml(productlist);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读