2017-03-08 84 views
0

我試圖運行LINQPad一個T-SQL查詢,並引用this page有關聲明變量,但得到這樣的:如何聲明SQL Server/LINQPad可以接受的標量變量?

enter image description here

缺什麼在我是如何聲明和分配瓦爾斯這些變量?

我可以只更換作業,如:

cmonth = @Cmonth 

...有:

cmonth = 4 

...但也有在查詢幾個地方,這個值被引用,我不想每次測試一組不同的數據。

那麼,我如何做這件事有什麼錯或缺失?

+2

嘗試刪除GO之前,您的Select語句 –

回答

2

這是GO聲明。每個SQL塊都會自行運行,直到下一個GO聲明。如果你想使用這些變量,它們需要與使用它們的語句在同一批處理中。

簡短的回答是刪除GO報表。

+0

我想知道爲什麼這個鏈接去與「去」s –

+1

@ B.ClayShannon我只是看着你的鏈接。在那篇文章中沒有任何地方顯示了一個代碼片段,它執行'DECLARE'來創建一個變量,然後在該行和它被使用的位置之間有一個「GO」。他們確實有一個片段,它有兩個批次,它們只會聲明未使用的變量,但我認爲這只是爲了顯示語法。下一個片段'DECLARE @DateFormat INT'並在同一批次中使用它們。 –

+1

還有一點:有些時候你會想要運行一個*有*的腳本來擁有多個批次。假設你想要一個'CREATE PROCEDURE',然後是一個使用它6次的腳本,那麼你想要'DROP PROCEDURE'。一個proc必須在它自己的批處理中創建,所以你需要一個'GO'。然後你可以批量使用它,然後你可以批量拖放它。在鏈接中我沒有看到他們需要批處理的任何示例。 –