我已经使用select * into
语句在存储过程中创建了#table。该表显示正常,但是当我开始使用if
语句时,它显示“ Invalid Column Name”。为什么会发生这种情况,列在我创建的表中都可用。
谁能告诉我是什么问题?
我尝试使用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
答案 0 :(得分:1)
您必须编写如下的IF语句。您的代码当前未引用IF语句中的任何表。我希望您要检查是否存在状态='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