2013-02-12 27 views
0

我想在SQL Server 2005中編寫一個過程來查看錶中最近的條目。如果該條目發生在一週以前,我想創建一個新條目。如果不是,我想更新最近的一個。SQL Server 2005:測試表變量爲標量

DECLARE @MaxVal TABLE (Date DATETIME) 

INSERT INTO @MaxVal (Date) 
(SELECT MAX(Date) 
FROM schema.TABLE_TO_UPDATE) 

IF [@MaxVal].Date > '2013-01-01' 
    PRINT 'New entry' 
ELSE 
    PRINT 'Update the entry' 

我不斷收到以下錯誤信息:

消息4104,級別16,狀態1,行9
多部分標識符 「@ MaxVal.Date」 無法綁定。

我擡頭看了一下那條消息,但大多數人似乎都把它引用到JOINS中。任何想法爲什麼會發生在這裏?

回答

1

您的IF語句引用表中的一列,不能在沒有關聯查詢的情況下完成。您可以試試這個代替

IF (select [@MaxVal].Date from @MaxVal) > '2013-01-01' 

這將返回您的列的值並將其與日期常量進行比較。

+0

工作,謝謝! – 2013-02-13 00:38:31