SQL - 以变量作为参数执行过程

Mr_*_*ean 1 sql variables parameters procedure

我刚学会了如何在SQL中创建存储过程(使用SQL Server 2008).我想知道是否可以这样做:

USE [SomeDB]
GO

DECLARE @var int = 3
GO

EXEC SomeProcedure @param = @var
GO
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,它会给出错误:" 必须声明标量变量"@var". "

我基本上试图将变量作为参数传递.肯定有办法做到这一点?

Spa*_*rky 5

GO命令分隔SQL批处理.第二个GO命令导致DECLARE语句变量被删除,因为EXEC启动了一批新命令

USE [SomeDB]
GO

DECLARE @var int = 3
--  GO

EXEC SomeProcedure @param = @var
GO
Run Code Online (Sandbox Code Playgroud)

  • 另外值得注意的是GO不是编译器或查询引擎命令 - 它被T-SQL工具识别(并且可以在编辑器中更改).http://technet.microsoft.com/en-us/library/ms188037.aspx (2认同)