2013-09-25 33 views
0

這是我第一個T-SQL問題,所以我希望我沒有使用錯誤的術語。我剛剛學習了一些基本的存儲過程和變量聲明,但是我還沒有理解。聲明批次後本地變量不可用

DECLARE @CurrentDate DATETIME 
SET @CurrentDate = GETDATE() 
select @CurrentDate 

----------------------- 
2013-09-25 18:47:07.547 

(1 row(s) affected) 

如果我運行上面的兩個批次(declareset在一起,select後)我得到:

DECLARE @CurrentDate DATETIME 
SET @CurrentDate = GETDATE() 

Command(s) completed successfully. 

select @CurrentDate 

Msg 137, Level 15, State 2, Line 1 
Must declare the scalar variable "@CurrentDate". 

它可能一定是簡單的,但我無法找到一個解決方案...

回答

2

你不能在不同的批次運行這些,抱歉。變量的範圍是批處理。您不必在存儲過程中擔心這一點,因爲您無法添加GO或單獨執行代碼的兩部分,就像在Management Studio中一樣。

+0

變量的作用域是批處理。明確!謝謝。在我學習的途中... :-) – Michele