?
Solved

Why the conditions not meet but the SP still execute?

Posted on 2009-04-08
1
Medium Priority
?
206 Views
Last Modified: 2012-05-06
Hi

I need to compare 2 tables' 2 values, if they are equal, then change the status of 2 tables.

However, even they are not equal, the update command still run.

How can I fix it?

I use MSSQL
ALTER PROCEDURE [dbo].[SP_Complete_Transaction] 
@id int
AS
BEGIN 
BEGIN TRAN Complete_Transaction
	SET NOCOUNT ON;
If (
(select sum(amount) as amount from subtransaction where transactionsid=@id and status=2) = 
(select amount from transactions where id=@id and status=2) 
and 
(select sum(payoutamount) as payoutamount from subtransaction where transactionsid=@id and status=2) =
(select countervalue from transactions where id=@id and status=2)
)
 
update transactions set status = 3 where id =@id
update subtransaction set status = 3 where transactionsid =@id
 
ELSE
 
select id from transactions where id=@id
 
IF @@ERROR <> 0
	ROLLBACK TRAN Complete_Transaction
ELSE
	COMMIT TRAN Complete_Transaction
END

Open in new window

0
Comment
Question by:techques
1 Comment
 
LVL 11

Accepted Solution

by:
aaronakin earned 150 total points
ID: 24099371
You need to wrap it in a BEGIN and END if you have more than one line in the IF and ELSE clauses.

IF ...
BEGIN
update transactions set status = 3 where id =@id
update subtransaction set status = 3 where transactionsid =@id
END
ELSE
BEGIN
...
END
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Recently, when I was asked to create a new SQL 2005 cluster, Microsoft released a new service pack for MS SQL 2005 what is Service Pack 3. When I finished the installation of MS SQL 2005 I found myself troubled why the installation of SP3 failed …
This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
SQL Database Recovery Software repairs the MDF & NDF Files, corrupted due to hardware related issues or software related errors. Provides preview of recovered database objects and allows saving in either MSSQL, CSV, HTML or XLS format. Ensures recov…
Stellar Phoenix SQL Database Repair software easily fixes the suspect mode issue of SQL Server database. It is a simple process to bring the database from suspect mode to normal mode. Check out the video and fix the SQL database suspect mode problem.

612 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question