我想创建一个SQL Server(现在是2008)存储过程,其中定义了未提交的参数。谷歌和MS.com建议如下,但它不起作用:
ALTER PROCEDURE [Contracts].test2
@first int = 6, -- default value of 6
@second int,
@third int
AS
BEGIN
SELECT @first, @second, @third;
END
结果:0 |输入的值|输入的值
提前致谢
答案 0 :(得分:1)
您必须像这样调用存储过程,它才能正常工作。
exec test2 @second=1, @third=2
答案 1 :(得分:0)
嗯,感谢您的反馈,我使用NaviCat 11来创建/测试。 。 。当我在SSMS中打开相同的(NaviCat创建的)SP时,它打开为:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [Contracts].[test2]
@first int = 6, -- NULL default value
@second int, -- Default value of 2
@third int -- Default value of 3
AS
BEGIN
SELECT @first, @second, @third;
END
然后正确运行"" (而在NaviCat中,由于某种原因,只要没有输入参数值,@ for first就会返回零。)