分享

T-SQL中的begin end分块语句 - 泥香的日志 - 网易博客

 jandye 2011-04-13

T-SQL中的begin end分块语句

数据库学习 2009-06-19 13:32:34 阅读342 评论1   字号: 订阅

转自:http://blog.sina.com.cn/s/blog_5df404110100dhjz.html

Begin

...

End

之间的是一个语句块,一般Begin...End用在

while

if等语句中

在T_SQL中,if/while后只能紧跟一条sql语句,如果有多条则应该用Begin..end包含起来

如:

if (@int > 9)

set @int = 1

else

set @int = 0

这里的if后面只把变量@int设为1,没有其它的操作,所以这里可以省去begin..end

但如果有多条,如

if(@int > 9)

begin

set @int = 1

select * from tablename

end

这里就必须用begin..end

否则

select语句就永远都会被执行一次

 

包括一系列的 Transact-SQL 语句,使得可以执行一组 Transact-SQL 语句。BEGIN 和 END 是控制流语言的关键字。

语法

BEGIN

     {

        sql_statement

        | statement_block

     }

END

参数

{ sql_statement | statement_block }

是任何有效的 Transact-SQL 语句或以语句块定义的语句分组。

注释

BEGIN...END 语句块允许嵌套。

虽然所有的 Transact-SQL 语句在 BEGIN...END 块内都有效,但有些 Transact-SQL 语句不应组合在同一个批处理(语句块)中。有关更多信息,请参见批处理和所用的各个语句。

示例

在本例中,BEGIN 和 END 定义一系列一起执行的 Transact-SQL 语句。如果没有包括 BEGIN...END 块,IF 条件仅使 ROLLBACK TRANSACTION 执行并且不返回打印信息。

USE pubs GO CREATE TRIGGER deltitle ON titles FOR delete AS IF     (SELECT COUNT(*) FROM deleted, sales        WHERE sales.title_id = deleted.title_id) > 0     BEGIN        ROLLBACK TRANSACTION        PRINT 'You can't delete a title with sales.' END

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多