在MSDN article {{3}}之间研究我可以做的事情时说:
无条件退出查询或过程。立即返回 并且可以在任何时候用于退出程序, 批处理或语句块。 RETURN后面的语句不是 执行。
文档没有接近我正在研究的具体情况。阅读之后,我意识到我不理解Return语句,并且(更具体地说)“语句块”的定义以及我认为。所以......
t-sql“语句块”究竟是什么?它们是由Begin ... End
在C#,{ ... }
或其他内容中的括号中定义的吗?
谢谢!
答案 0 :(得分:5)
它们有多种口味(尝试,捕捉),但通常看起来像
BEGIN
PRINT 'I am a block'
RETURN
PRINT 'I am still in a block but you will not see me'
END
PRINT 'Too late, we returned from the above block'
答案 1 :(得分:1)
我同意文件中的这句话具有误导性。
RETURN
不会退出最直接的BEGIN END
块(可以嵌套),但会从整个函数或过程返回,我不确定退出的真正含义一个批处理 - 也许在带有GO分隔符的SSMS中,它会继续运行以后的批处理(我必须测试它) - GO是客户端的事情,所以我不确定这个概念在实践中有多么有用。 / p>