2017-03-08 49 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'。然后你可以批量使用它,然后你可以批量拖放它。在链接中我没有看到他们需要批处理的任何示例。 –