我有一个这种形式的存储过程:
ALTER PROCEDURE [dbo].[fooBar]
(
)
AS
BEGIN
-- etc
RETURN @Success
END
它之前一直与其中的
BEGIN
和 END
完美配合,但在更改某些内容并将其恢复回来后,它拒绝执行,指向最后一个 END
处的语法错误(删除下一个指向过程中第一个 IF/BEGIN/... 语句出现语法错误,从而开始你的徒劳追逐)。
查看MSDN官方文档的语法,用这种方式封装存储过程的
BEGIN
和END
是非法的。 (删除BEGIN
和END
解决了问题)
问题:为什么会发生这种情况?
编译器是否最初跳过了这个
BEGIN
和 END
后来发现了它? SQL 编译器是否会忽略一些事情?是遗产吗?难道只是挑剔吗?我是否缺少修补程序?
这是
SQL Server 10.50.1617
BEGIN
/END
对于存储过程完全有效。这是在您链接到的文档页面的语法中明确设置的。
这是不允许的括号。