首页 > 数据库 >9.2 SQL Server BEGIN END

9.2 SQL Server BEGIN END

时间:2023-01-30 10:47:34浏览次数:38  
标签:语句 BEGIN END name product Server SQL

BEGIN END

目录

简介

BEGIN…END语句用于定义语句块。语句块由一组一起执行的SQL语句组成。语句块也称为批处理。

打个比方说,如果语句是句子,那么BEGIN…END语句包裹的就是段落。

语法:

BEGIN
    一组SQL代码
END

在此语法中,在BEGIN和END关键字之间放置一组SQL语句,例如:

BEGIN
    SELECT
        product_id,
        product_name
    FROM
        production.products
    WHERE
        list_price > 100000;

    IF @@ROWCOUNT = 0
        PRINT 'No product with price greater than 100000 found';
END

要查看PRINT语句生成的消息,需要在SQL Server Management Studio中单击Messages(消息)选项卡。默认情况下,消息选项卡处于隐藏状态。

本例中:

  • 首先,有一个以BEGIN关键字开始并以END结尾的块关键字。
  • 第二,在块内,有一个SELECT语句,查找标价大于100000的产品。然后,有IF语句检查查询是否返回任何产品,如果没有产品返回,则打印一条消息。

请注意,@@ROWCOUNT是一个系统变量,它返回受上一条语句影响的行数。

BEGIN…END语句绑定SQL语句的逻辑块。我们经常在存储过程和函数的开头和结尾使用BEGIN…END。但这并不是绝对必要的。

但是,对于需要包装多个语句的IF ELSE语句、WHILE语句等,必需要BEGIN…END

嵌套BEGIN... END

语句块可以嵌套。只是意味着可以将BEGIN…END语句放在另一个BEGIN…END语句中。

比如:

BEGIN
    DECLARE @name VARCHAR(MAX);

    SELECT TOP 1
        @name = product_name
    FROM
        production.products
    ORDER BY
        list_price DESC;
    
    IF @@ROWCOUNT <> 0
    BEGIN
        PRINT 'The most expensive product is ' + @name
    END
    ELSE
    BEGIN
        PRINT 'No product found';
    END;
END

在本例中,使用BEGIN…END语句包装整个语句块。在这个块中,还将BEGIN…END用于IF…ELSE语句。

标签:语句,BEGIN,END,name,product,Server,SQL
From: https://www.cnblogs.com/michaelshen/p/17074738.html

相关文章

  • 9.4 SQL Server循环
    SQLServer循环目录SQLServer循环简介WHILE示例BREAK简介示例CONTINUE简介示例简介WHILE语句是一个控制流语句,它允许重复执行语句块,只要指定的条件为TRUE。WHILE语法......
  • 9.3 SQL Server IF ELSE
    SQLServerIFELSE目录SQLServerIFELSE简介IF语句示例IFELSE语句示例:嵌套IF…ELSE简介IF...ELSE语句是一种控制流语句,允许根据指定的条件执行或跳过语句块。IF......
  • 9.5 SQL Server游标
    SQLServer游标(CURSOR)目录SQLServer游标(CURSOR)简介什么是数据库游标SQLServer游标生命周期示例简介SQL基于集合进行操作,例如,SELECT语句返回一组称为结果集的行。但......
  • 9.6 SQL Server异常处理
    SQLServer异常处理目录SQLServer异常处理TRYCATCH简介CATCH块中的函数嵌套的TRYCATCH简单示例在事务中使用TRYCATCH的示例THROW简介示例A)以下示例使用THROW语句引......
  • 8.3 SQL Server非聚集索引
    SQLServerNon-ClusteredIndexes(非聚集索引)目录SQLServerNon-ClusteredIndexes(非聚集索引)简介使用SQLServerCREATE[NONCLUSTERED]INDEX创建非聚集索引示例A)使用C......
  • 8.4 SQL Server唯一索引
    SQLServer唯一索引(UniqueIndex)目录SQLServer唯一索引(UniqueIndex)简介示例A)创建包含一列的唯一约束B)创建包含多列的唯一约束SQLServer唯一索引与NULL唯一索引(Uniquei......
  • 8.5 SQL Server包含列索引
    SQLServer索引与包括的列目录SQLServer索引与包括的列简介创建包含列的索引的语法简介本文使用sales.customers表作为示例下面语句在email列创建唯一约束:CREATEU......
  • 8.6 SQL Server筛选索引
    SQLServer筛选索引目录SQLServer筛选索引简介示例筛选索引的优点简介如果使用得当,非聚集索引可以大大提高查询性能。然而,非聚集索引的好处是有代价的:存储和维护。......
  • 8.7 SQL Server计算列上的索引
    SQLServer计算列上的索引目录SQLServer计算列上的索引简介计算列索引的要求简介有如下客户表:查找居住在garry.espinoza的客户:SELECTfirst_name,last......
  • 让Windows Server 2008r2 IIS7.5 ASP.NET 支持10万并发请求
    由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从而出现了上面的错误。为了避免这样的错误,我们根据相关文档调整了......