zoukankan      html  css  js  c++  java
  • sql server中的go

    1. 作用:
    向 SQL Server 实用工具发出一批 Transact-SQL 语句结束的信号.
    2. 语法:
    一批 Transact-SQL 语句
    GO

    Select 1
    Select 2
    Select 3
    GO
    3. 说明:
    1) GO 不是 Transact-SQL 语句;
    2) 它是 sqlcmd 和 osql 实用工具以及 SQL Server Management Studio 代码编辑器识别的命令.
    3) SQL Server 应用程序可以将多个 Transact-SQL 语句作为一个批发送到 SQL Server 的实例来执行.然后,该批中的语句被编译成一个执行计划.程序员在 SQL Server 实用工具中执行特殊语句,或生成 Transact-SQL 语句的脚本在 SQL Server 实用工具中运行时,使用 GO 作为批结束的信号.
    4) 如果基于 ODBC 或 OLE DB API 的应用程序试图执行 GO 命令,会收到语法错误.SQL Server 实用工具从不向服务器发送 GO 命令.
    4. 权限:
    GO 是一个不需任何权限的实用工具命令.它可以由任何用户执行.
    5. 用法:
    1) SQL Server 实用工具将 GO 解释为应该向 SQL Server 实例发送当前批 Transact-SQL 语句的信号.当前批语句由上一 GO 命令后输入的所有语句组成,如果是第一条 GO 命令,则由即席会话或脚本开始后输入的所有语句组成.

    SQL Server中go语句使用注意事项

    1、GO 命令和 Transact-SQL 语句不能在同一行中.但在 GO 命令行中可包含注释


    Select 1
    GO
    --会正确输出结果,列名为”无列名”

    Select 1 GO

    --会正确输出结果,列名为”GO”
    --由此可知此处的GO并未起到应有的作用;


    2、用户必须遵照使用批处理的规则.例如,在同一批处理中,创建数据库之后不能直接使用其新建的数据库


    create database [Roc]
    use [Roc]
    GO
    --运行此批处理后,系统会报错
    --把此批处理分成两个批即可正确运行


    create database [Roc]
    GO
    use [Roc]
    GO

     

    3、局部(用户定义)变量的作用域限制在一个批处理中,不可在 GO 命令后引用

     

    declare @Roc varchar(max)
    Select @Roc = 'aking'
    GO
    print @Roc
    GO

    --此为两个批处理,由于局部变量的作用域要限制在一个批处理中,所以此语句错误
    --把这两个批合并为一个批即可正确运行

    declare @Roc varchar(max)
    Select @Roc = 'aking'
    print @Roc
    GO

     

    4、每个被GO分隔的语句都是一个单独的事务,一个语句执行失败不会影响其它语句执行

     

    select * from sysobjects where id=a
    select getdate()

    --你会发现会报错,并且不会显示任何结果集


    select * from sysobjects where id=a
    go
    select getdate()
    go

    --你会发现尽管同样会报错,但结果集中包含select getdate()的结果。


    5、GO [count] count 为正整数.指定GO 之前的批处理执行指定的次数

     

    insert [Roc] Select 'aking'
    GO
    --批处理执行1次,向表Roc中插入一行记录

    aking Insert [Roc] Select 'aking'
    GO 10
    --批处理执行10次,向表Roc中插入10行记录aking

  • 相关阅读:
    Android 开发 深入理解Handler、Looper、Messagequeue 转载
    Android 开发 Handler的基本使用
    Java 学习 注解
    Android 开发 AlarmManager 定时器
    Android 开发 框架系列 百度语音合成
    Android 开发 框架系列 Google的ORM框架 Room
    Android 开发 VectorDrawable 矢量图 (三)矢量图动画
    Android 开发 VectorDrawable 矢量图 (二)了解矢量图属性与绘制
    Android 开发 VectorDrawable 矢量图 (一)了解Android矢量图与获取矢量图
    Android 开发 知晓各种id信息 获取线程ID、activityID、内核ID
  • 原文地址:https://www.cnblogs.com/Ting-light/p/9541279.html
Copyright © 2011-2022 走看看