Error 170: Incorrect syntax near '=' on SQL Server 2000

hi SQL folks

i got stuck on the following error when modifying a stored procedure on SQL Server 2000, the Stored Procedure Properties window keeps showing the stop-sign message after pressing the Check Syntax button.

Error 170: Incorrect syntax near '='
this happened after adding the IF EXISTS () clause at line 11, before that there was no any error message.

the SQL server 2000 is running on Windows NT 4 server. yes, it is a NT 4 box. :-)

can you please help me determine where the problem is?

thanks,
bbao
LVL 37
bbaoIT ConsultantAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Louis01Commented:
Change the "if exists" part:

select @right = tag_right from tags where tag_key = @tag_id
if (@right is not null)
begin
...
0
Guy Hengel [angelIII / a3]Billing EngineerCommented:
if exists ( select @var = field ...

is not allowed in Sql Server.

I suggest you modify like this:

select @right = tag_right from  ....
if @right is not null
begin
  ..
end
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
bbaoIT ConsultantAuthor Commented:
thank you all for the prompt replies. your comments did help!

as a C programmer who used to assign variable followed by comparison, sometimes it is really easy to have the same thinking when writing in other languages. :-)

the issue is that an assignment ("select @right = tag_right") was incorrectly given to a comparison ("if exists"). your comments did let me realise the reason.

actually, IF EXISTS () is allowed in SQL Server, but it requires a comparison to be followed. after correcting the code like below, it works now.

if exists (select tag_key from tags where tag_key = @tag_id)

thanks again.
bbao
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.