Я получаю сообщение об ошибке «Неверное имя столбца», даже когда все столбцы присутствуют в таблице - PullRequest
0 голосов
/ 19 июня 2019

Я создал #table внутри хранимой процедуры, используя оператор select * into. Таблица показана нормально, но когда я начинаю использовать оператор if, она говорит "Неверное имя столбца". Почему это происходит, все столбцы доступны в созданной мной таблице.

Может кто-нибудь сказать мне, в чем проблема?

Я попытался использовать select * from #table, все столбцы и его значения присутствуют.

Я также попытался update #Table и изменить несколько значений. До сих пор работает нормально.

Только когда я использую оператор if, он показывает ошибку,

UPDATE #SMSB_temp
SET Status = '09'
WHERE RenewStatus = '03'

IF NOT EXISTS (SELECT * FROM #SMSB_temp)
BEGIN
    IF Status = '09' AND AvailableBalance > @SMSBRenewalCharges
    BEGIN

    END
END

1 Ответ

1 голос
/ 19 июня 2019

Вы должны написать заявление IF, как показано ниже.Ваш код в настоящее время не ссылается ни на одну таблицу в выражении IF.Я надеюсь, что вы хотите проверить, есть ли строка с Status = '09' и AvailableBalance> @SMSBRenewalCharges.

DECLARE @Check bit

SET @check = (SELECT TOP 1 1
              FROM #SMSB_temp 
              WHERE Status = '09' AND AvailableBalance > @SMSBRenewalCharges)

IF @check = 1
BEGIN
   ...
END 

Как @squirrel предложил в комментариях, вы можете просто написать, как показано ниже:

IF EXISTS ( SELECT TOP 1 1
              FROM #SMSB_temp 
              WHERE Status = '09' AND AvailableBalance > @SMSBRenewalCharges)
BEGIN
 ...
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...