我有这种形式的存储过程:
ALTER PROCEDURE [dbo].[fooBar]
(
)
AS
BEGIN
-- etc
RETURN @Success
END
之前它曾与BEGIN
和END
完美配合,但在更改了某些内容并将其还原后,它拒绝执行,指向上一个{{1}的语法错误(删除下一个指向程序内第一个IF / BEGIN / ....语句的语法错误,从而开始你的野鹅追逐)。
查看MSDN official documentation的语法,END
和BEGIN
以这种方式封装存储过程是非法的。 (删除END
和BEGIN
解决了问题)
问题:为什么会这样?
编译器是否最初跳过此END
和BEGIN
并稍后发现它?是否有一些SQL编译器忽略的东西?这是遗产吗?它只是挑剔吗?我错过了修补程序吗?
这是END
答案 0 :(得分:1)
BEGIN
/ END
对存储过程完全有效。这在您链接到的文档页面的语法中明确设置。
这是不允许的括号。