Sql server SQL management studio和绑定变量

Sql server SQL management studio和绑定变量,sql-server,oracle,ssms,Sql Server,Oracle,Ssms,我的数据库开发技能相当有限,但我最近在Oracle SQL developer中做了一些工作,它使用绑定变量,即:bv1作为参数占位符 现在,我在MS SQL Server Management studio 2012版本中使用@BV1作为参数做了一些类似的工作,但是当我在Management studio中测试查询时,我无法找到如何声明参数,即在执行时为其提供实际值。Oracle SQL过去常常在开始执行时弹出一个框来添加值,但我在MS版本中找不到类似的内容 编辑:所以我只想举一个例子,说明我

我的数据库开发技能相当有限,但我最近在Oracle SQL developer中做了一些工作,它使用绑定变量,即:bv1作为参数占位符

现在,我在MS SQL Server Management studio 2012版本中使用@BV1作为参数做了一些类似的工作,但是当我在Management studio中测试查询时,我无法找到如何声明参数,即在执行时为其提供实际值。Oracle SQL过去常常在开始执行时弹出一个框来添加值,但我在MS版本中找不到类似的内容

编辑:所以我只想举一个例子,说明我正在尝试执行什么。我有一个select语句,其中有一个where子句,如下所示:

WHERE FIELD_NAME in ( @BV1,@BV2,@BV3,@BV4,@BV5,@BV6,@BV7,@BV7,@BV8,@BV8)

当我单击execute时,它只是说必须声明标量变量@BV1。在Oracle中,它通常会提示我提供BVs的值。

在SQL Management Studio中不能这样做。您需要在脚本中声明和设置变量:

DECLARE @my_int INT 
SET @my_int = 0

始终必须首先在脚本中声明变量:

DECLARE @BV1 AS INT = 1;
SQL Management Studio在执行时不会提示您声明它们

无论如何,在您的示例中,似乎您只是想要一些简单的东西,如:

WHERE FIELD_NAME in ( 1 ,2 ,3 )

SSMS不直接支持参数化查询如果查询需要真正参数化,可以使用sp_executesql

带有局部变量的模板可用于提示值替换。按SHIFT-CTRL-M以显示替换对话框。下面是一个模板示例

DECLARE 
      @BV1 sysname = <@BV1, sysname, BV1 value>
    , @BV2 sysname = <@BV2, sysname, BV2 value>
    , @BV3 sysname = <@BV3, sysname, BV3 value>
    , @BV4 sysname = <@BV4, sysname, BV4 value>
    , @BV5 sysname = <@BV5, sysname, BV5 value>
    , @BV6 sysname = <@BV6, sysname, BV6 value>
    , @BV7 sysname = <@BV7, sysname, BV7 value>
    , @BV8 sysname = <@BV8, sysname, BV8 value>;

SELECT ...
WHERE FIELD_NAME in ( @BV1,@BV2,@BV3,@BV4,@BV5,@BV6,@BV7,@BV7,@BV8,@BV8);

什么意思?如果从存储过程的上下文菜单中选择“执行”,则会得到一个参数列表。你试过什么?您是否正在尝试在SQL Server中使用Oracle语法?为什么不只是exec mysproc 1或exec mysproc@someVariable?我明白了。。。当我有40个左右的参数时会有点努力,但是哦,好吧。。。谢谢哦,天哪,这太可悲了……在目前18.5版本的SSMS的最新版本中也是这样吗?