我刚学会了如何在SQL中创建存储过程(使用SQL Server 2008)。我想知道是否可以这样做:
USE [SomeDB]
GO
DECLARE @var int = 3
GO
EXEC SomeProcedure @param = @var
GO
当我尝试这个时,它会给出错误:“必须声明标量变量”@var“。”
我基本上试图将变量作为参数传递。肯定有办法做到这一点吗?
答案 0 :(得分:5)
GO命令用于分隔SQL批处理。第二个GO命令导致DECLARE语句变量被删除,因为EXEC启动了一批新命令
USE [SomeDB]
GO
DECLARE @var int = 3
-- GO
EXEC SomeProcedure @param = @var
GO