Improve company productivity with a Business Account.Sign Up

x
?
Solved

SQL Stored Procedure If Else

Posted on 2008-06-16
8
Medium Priority
?
210 Views
Last Modified: 2010-04-21
Good Day
Experts:

What is the best way to condition on a Select query is a Stored Procedure to determine whether to process code or not?

Let's say I have --> Select EngineHP from Motor where EngineSize = '400'

I would want to process some code in the S/P is the query returned a record with a value for EngineHP.
If no value found/retrieved issue to User "EngineSize not found"

I have tried  a CURSOR but could not get that to work.  

What would be my best option here?

Thanks,
jimbo99999
0
Comment
Question by:Jimbo99999
8 Comments
 
LVL 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 2000 total points
ID: 21793332
here we go:
CREATE PROCEDURE yourproc 
AS
BEGIN
  SET NOCOUNT ON
  DECLARE @EngineHP varchar(100) 
  SELECT @EngineHP = EngineHP from Motor where EngineSize = '400'
  IF ROWCOUNT = 0 -- no rows found
    SELECT 'EngineSize not found' result
  ELSE 
    SELECT .... whatever you need ...
   
END

Open in new window

0
 
LVL 60

Expert Comment

by:chapmandew
ID: 21793335
is this what you're asking?

IF EXIST(Select EngineHP from Motor where EngineSize = '400')
BEGIN
--processing here
END
0
 
LVL 60

Expert Comment

by:chapmandew
ID: 21793343
angelIII, what happens if your query returns more than one result when trying to assign a value to the @EngineHP variable?
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
LVL 18

Expert Comment

by:Joel Coehoorn
ID: 21793492
Before writing this as an if/else struct I would try to combine the two operations into one more complicated query.
0
 

Author Closing Comment

by:Jimbo99999
ID: 31467581
EngineSize is part of the key so this is what I am looking for.  I was missing the ROWCOUNT interogation and result  after 'Engine not found'.

Thanks for the help...jimbo99999
0
 
LVL 60

Expert Comment

by:chapmandew
ID: 21794195
IF there are any records returned from this:

SELECT @EngineHP = EngineHP from Motor where EngineSize = '400'

Then you will get an error.
0
 
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 21794262
>IF there are any records returned from this:
>SELECT @EngineHP = EngineHP from Motor where EngineSize = '400'
>Then you will get an error.

in ms sql server, if there are 0 or > 1 records, there will be NO error.
if there are 0 records, the value of @EngineHP will not change.
if there are > 1 records, the value will be any of the rows' values (usually, the "last" one returned)
0
 
LVL 60

Expert Comment

by:chapmandew
ID: 21794310
whoops...I was thinking assignment from a subquery....
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
Windocks is an independent port of Docker's open source to Windows.   This article introduces the use of SQL Server in containers, with integrated support of SQL Server database cloning.
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

587 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