• 变量的多次使用之GO


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

    1、批处理

    USE TEST
    GO
    
    IF   OBJECT_ID('T1') IS NOT NULL
        DROP TABLE T1;
        
    CREATE TABLE T1(
    ID INT IDENTITY(1,1) PRIMARY KEY,
    TT VARCHAR(10)
    )
    
    DECLARE @VV VARCHAR(10)
    SET @VV = N'测试1'
    insert into T1(TT) values(@VV)
    GO
    SET @VV = N'测试2'
    insert into T1(TT) values(@VV)

    这个时候会有报错,提示我们有变量没有定义:

    (1 行受影响)
    消息 137,级别 15,状态 1,第 1 行
    必须声明标量变量 "@VV"。
    消息 137,级别 15,状态 2,第 2 行
    必须声明标量变量 "@VV"。

    但其实我们已经定义了的,为什么还会有这个错误呢?因为GO把上面的语句已经结束,下面是另外的一个语句的开始。

    我们可以尝试把GO注释掉,如下面所示:

    USE TEST
    GO
    
    IF   OBJECT_ID('T1') IS NOT NULL
        DROP TABLE T1;
        
    CREATE TABLE T1(
    ID INT IDENTITY(1,1) PRIMARY KEY,
    TT VARCHAR(10)
    )
    
    DECLARE @VV VARCHAR(10)
    SET @VV = N'测试1'
    insert into T1(TT) values(@VV)
    --GO
    SET @VV = N'测试2'
    insert into T1(TT) values(@VV)

    这个很显示的不会报错,并且有查询结果:

    2、对数据进行循环插入操作

    insert into T1(TT) values(200)
    GO  100

    则会对t1列插入200的数据操作100次。

    数据库环境 :SQL SERVER 2008

  • 相关阅读:
    Vue 获取URL链接后面的参数值
    Vue 跳转到指定页面,返回到上一页
    Vant 插件
    Vue 返回上一页,记住上一页的数据
    vue pc端支付宝支付
    Spring 中的事务
    数据库中锁与事务
    《产品方法论》 读书笔记
    设计模式之装饰者模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/zerocc/p/3025003.html
Copyright © 2020-2023  润新知