>>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?
>
>You can not assign variables in IF.
>You could use either:
>
>IF NOT EXISTS (SELECT * Parts where inv_code = @Inv_Code)
> SELECT @InvenPk = INVEN_PK,
> @UnitPrice = Unit_Price,
> @CurrStockQty = INSTOCK
> FROM Parts
> where inv_code = @Inv_Code
>
>either:
>
>SET @InvenPk = NULL
>SELECT @InvenPk = INVEN_PK,
> @UnitPrice = Unit_Price,
> @CurrStockQty = INSTOCK
>FROM Parts
>where inv_code = @Inv_Code
>IF @InvenPk IS NOT NULL
>
>
>The first will be faster if you have many records. Just because EXISTS stops executing after the first match.
First, thank you for your suggestions. But I thought that using @@ROWCOUNT would be faster. The reason is that the procedure needs the values of the INVEN_PK, UNIT_PRICE, and so on. So rather than having 2 SQL Select statements I will go with one SQL Select and then check if any records are found.
"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