Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Error in SQL Select
Message
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Stored procedures, Triggers, UDFs
Versions des environnements
SQL Server:
SQL Server 2014
Application:
Web
Divers
Thread ID:
01611527
Message ID:
01611529
Vues:
34
>>Hi,
>>
>>I am writing (what appears to be) a simple stored procedure where the first equal sign (=) always shown with squiggly red underline and the message 'Incorrect syntax new ='
>>
>>
>>	IF NOT EXISTS (SELECT @InvenPk = INVEN_PK, @UnitPrice = Unit_Price, @CurrStockQty = INSTOCK FROM Parts where inv_code = @Inv_Code)
>>
>>
>>If I remove the first column select the error moves to the next one.
>>
>>What am I missing?
>
>I guess you are trying to use the @ variables later on that is why you are assigning them some value, but I do not think you can (or should if you can) do that, exists should be used to do exactly that, check if there are records meeting the conditions, so a simple
>
>
>      IF EXISTS (SELECT 1 FROM Parts where inv_code = @Inv_Code)
>
>
>[Update]
>Another alternative, closer to what I think you want is (from http://stackoverflow.com/questions/8598740/assigning-a-variable-inside-an-if-exists-clause)
>
>
>SELECT @InvenPk = INVEN_PK, @UnitPrice = Unit_Price, @CurrStockQty = INSTOCK FROM Parts where inv_code = @Inv_Code
>IF @@ROWCOUNT > 0 ...
>
>
>I still found this doubtful as if there are more records complying with your filter you would lose data... (I guess not applicable in this particular case as I guess inv_code is a primary key)
>[/Update]

I understand now your point that when I use the clause IF EXISTS I cannot at the same time assign values. So I will go with the suggestion to use @@ROWCOUNT. And if my logic is correct the SQL Select should not find more than one record/row for the WHERE condition since the column INV_CODE is unique.
Thank you for your help.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform