all groups > sql server (alternate) > october 2003 >
You're in the

sql server (alternate)

group:

Execute Statement..


Execute Statement.. arijitchatterjee123 NO[at]SPAM yahoo.co.in
10/30/2003 10:05:53 PM
sql server (alternate):
Dear Friens,
I am writing a SP.But storeing a query in a variable.But at the time
of execution generating error.Exam
===================
Declare @query varchar{500)
Set @query = 'Select * from table'

if exists (exec (@query))
print 'Hi'
====================
But "if exists" line giving error.How do I solve this.Please help me
out.
Reagrds
Re: Execute Statement.. jbellnewsposts NO[at]SPAM hotmail.com
10/31/2003 4:56:21 AM
Hi

EXISTS requires a sub-query as the test, and EXEC does not do that.

If you have to do this dynamically then you may want to look at
sp_executesql to return a count or move everything into @query.

If you posted more precise detail it may be easier to offer advice.

John


[quoted text, click to view]
Re: Execute Statement.. arijitchatterjee123 NO[at]SPAM yahoo.co.in
11/1/2003 8:28:53 PM
Create proc sp_test
as
Declare @query varchar{500)
Declare @var varchar(10)
set @var='Test'
Set @query = 'Select * from table' + ' Where ' + 'Colname = ' + @var
exec (@query)----> Working fine
if exists (exec (@query))----> Sending error
print 'Hi'
Now tell me how to solve this.
Regards
Re: Execute Statement.. John Bell
11/2/2003 11:03:56 AM
See inline

[quoted text, click to view]
This will not compile

[quoted text, click to view]
If you were doing this correctly the value in @var would be enquoted

[quoted text, click to view]

Reading books online would be the first place to look.

Then read http://www.algonet.se/~sommar/dynamic_sql.html on why you should
justify the use of dynamic SQL.

You should then be able to work out how to return the count using
sp_executesql to get what is require.

[quoted text, click to view]

John

Re: Execute Statement.. cliff NO[at]SPAM dimension2000.com
11/6/2003 1:52:40 PM
What you need to do in this case is create a sql server temporary
table (such as create table #temp (column1 nvarchar(10),column2
nvarchar(10))) and then build your @query string so that it inserts
the results of your dynamic select statement into the temp table. You
can then play the whole "exists" game on the results of a query
against your #temp table.

Make sure that you do not build your temp table dynamically. And
remember, you can't insert results from a dynamically built select
statement into a normal variable, but you can insert them into a temp
table.

Good Luck!

[quoted text, click to view]
AddThis Social Bookmark Button