在SSMS 2012,設置Options > Query Execution > ANSI > SET IMPLICIT_TRANSACTIONS
,比照後this SO postSQL Server Management Studio中的交易和變量
我在查詢窗口下面的代碼:
begin transaction
select @@TRANCOUNT
begin
declare @someNumber int; set @someNumber = 1;
print @someNumber;
end
rollback
當我選擇了整個街區,並按下Execute
,我看到預期的結果,即1。
但是,當我選擇第4行並執行時,然後選擇第5行,即print @someNumber;
,我得到以下消息:
消息137,級別15,狀態2,行1
必須聲明標量變量 「@someNumber」。
變量的範圍究竟是什麼?
我很困惑。有人可以擺脫任何光線,或請指點我正確的方向嗎?
感謝您的簡潔的回答和有用的鏈接!我想設置一個變量用於多個批次,並且我想一路查看。我可以更改「執行」的行爲嗎?我需要調試嗎? –
使用臨時表(一行一列)來堅持它 – gbn
謝謝!我最終可能會寫一點.NET存儲過程來實現一個地圖或類似的東西。 –