zoukankan      html  css  js  c++  java
  • SQL批处理

    (1)什么是批处理?

        批处理就是T-SQL语句的集合的逻辑单元,它的所有语句被合并为一个执行计划.

     个人理解:

       批处理就是好像我们常见的函数一样,它包含若干条T-SQL语句且每个批处理是独立运行的, 执行时发生错误时,除了当前出现错误的批处理不执行外,其它照样执行.

    (2)使用GO语句进行批处理划分

      使用GO语句遵循规制

      1.独立成行,易于代码的可读性(GO语句万万不能放到其中包含有SQL语句行的末尾,因为这会导致编译器曲解).

      2.使得所有语句必须在脚本的开始或者上一个GO语句进行编译.

      3.GO不是一条T-SQL语句.

    (3)何时和什么语句需要用到批处理语句?

         1.CREATE DEFAULT

      2.CREATE FUNCTION 

      3.CREATE PROCEDURE

      4.CREATE RULE

      5.CREATE SCHEMA

      6.CREATE TRIGGER

      7.CREATE VIEW

      要在一个脚本中将上述的这些语句与其它语句结合起来时,需要使用GO语句将他们分解成独立的批次.

       例子:

        create database data;

        use data ;

        create table tb(...);

      这段脚本代码是不能通过执行的,而用GO语句将它进行批量化后就可以了

        create database data;

        go

        use data ;

        create table tb(...);

     (4)SQLCMD介绍

      SQLCMD允许在Windows命令窗口中通过命令提示符来运行脚本.这对于执行转换和维护脚本非常有好处,而且是一种捕捉文本文件的快捷方法.

      它的语法对大小写很敏感.

     (5)动态SQL:使用exec命令注意的问题

      1.它运行在单独的作用域中而不是在调用它的代码内(调用代码不能引用exec语句里的变量,而exec不能引用调用代码中的变量)

      2.在默认情况下,与当前用户在同一安全上下文中运行.

      3.它运行在与调用对象一样的连接和事物上下文中

      4.对于需要函数调用的串联而言,必须在实际调用exec语句之前,在exec字符串上予以执行.

      5.用户自定义的函数内不能使用exec.

     (6)CASE语句

         1.case语句后面跟相关表达式

            如:

            case 表达式

             when 值1 then 操作1

              ...

             end

         2.case语句后面不跟任何表达式,when语句后必须是bool值

          如:

          case 

          when bool1 then 操作1

           ....

          else 另外操作

         end

     (7)SQL语句中的WHILE语句中的BREAK和 CONTINUE关键字与C语言定义一样.

     (8)WAITFOR语句

         本语句中最大延迟时间为24小时,不能指定其他日期类型.

     例如:

        WAITFOR DELAY '01:00'

        WAITFOR TIME '05:30'

      

  • 相关阅读:
    实验二Step1-有序顺序表
    0330复利计算4.0(改)
    0330复利计算4.0单元测试
    实验一 命令解释程序的编写
    《构建之法》之第1、2、3章读后感
    0408-汉堡包的方式评价合作伙伴
    0406-复利计算5.0
    0405—软件工程 《构建之法》 第四章读后感
    03-29复利计算单元测试
    03-25实验一、命令解释程序的编写
  • 原文地址:https://www.cnblogs.com/PurpleRain/p/2766814.html
Copyright © 2011-2022 走看看