If..begin..begin tran..Rollback
问题描述:
我下面的代码,但它给出了一个错误,请指导我如何嵌套if..begin..begin__tran__Rollback或承诺If..begin..begin tran..Rollback
declare @acname as varchar(max),
@gstcount as int
set @acname='Party1'
use TESTDB
set @gstcount = (select count(GSTIN) from M_STATEWISEGSTINACTAG where GSTIN<>'UNREGISTERED' AND ACCD=
(select accd from m_ledger where descr LIKE @acname))
if @gstcount = 1
begin
--multiple select statments
select .......
--to display require info.
end
--Then Update Values
begin tran;
update M_tbl ........where....
--Show result with updated value
select * from M_tbl........where.........
--Undo Changes
ROLLBACK;
else
begin
SELECT ........reuqir info
end;
在此脚本我得到一个错误'关键字'else'附近的语法不正确。
答
试试这个:
DECLARE @acname AS VARCHAR(MAX), @gstcount AS INT;
SET @acname = 'Party1';
USE TESTDB;
SET @gstcount =
(
SELECT COUNT(GSTIN)
FROM M_STATEWISEGSTINACTAG
WHERE GSTIN <> 'UNREGISTERED' AND ACCD =(SELECT accd FROM m_ledger WHERE descr LIKE @acname)
);
IF @gstcount = 1
BEGIN
BEGIN
--multiple select statments
SELECT .......
--to display require info.
END;
--Then Update Values
BEGIN TRAN;
update M_tbl ........where....
--Show result with updated value
select * from M_tbl........where.........
--Undo Changes
ROLLBACK TRAN;
END;
ELSE
BEGIN
SELECT........reuqir info;
END;
我检查与终端,终端;,年底陈德良,结束TRAN;它仍然给我一个相同的行号错误 –