什么是T-SQL语句块?

时间:2011-08-31 21:18:33

标签: sql-server tsql return

MSDN article {{3}}之间研究我可以做的事情时说:

  

无条件退出查询或过程。立即返回   并且可以在任何时候用于退出程序,   批处理或语句块。 RETURN后面的语句不是   执行。

文档没有接近我正在研究的具体情况。阅读之后,我意识到我不理解Return语句,并且(更具体地说)“语句块”的定义以及我认为。所以......

t-sql“语句块”究竟是什么?它们是由Begin ... End在C#,{ ... }或其他内容中的括号中定义的吗?

谢谢!

2 个答案:

答案 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>