有一个很多语句的 xxx.sql脚本
是否可以在这个脚本文件中加上某些条件判断,并且实施中途退出(不执行后续的sql脚本命令)

解决方案 »

  1.   


    select 1 
    return
    select 2 
    --result  
    ----------- 
    1(所影响的行数为 1 行)
      

  2.   

    return  并不能终止脚本文件后续语句的执行
      

  3.   

    .......
    if (@error<>'') goto SqlEnd
    .............
    .........
    SqlEnd:
    return
      

  4.   

    select 1
    return --加了return,则只输出1一条.不加return,则输入1,2两条
    select 2
      

  5.   

    gahade(与君共勉) 你的这个可以
    但是我的脚本文件包含很多表\存储过程的更新,RETURN并不退出
      

  6.   

    RETURN
    从查询或过程中无条件退出。RETURN 即时且完全,可在任何时候用于从过程、批处理或语句块中退出。不执行位于 RETURN 之后的语句。
    --建立测试表
    drop table tbtest
    go
    create table tbtest(id int)--测试的SQL语句块
    insert into tbtest
    select 11
    return
    alter table tbtest add name varchar(10)
    --测试语句块结束--查看表
    select * from tbtest
    /*
    id          
    ----------- 
    11(所影响的行数为 1 行)
    */
    --name字段并没有增加到表中不知道楼主是怎样测试的.
      

  7.   

    fishmans(金脚指)
    GOTO 也不管用
    脚本文件时SQL SERVER生成的
      

  8.   

    在更新脚本的开头加上DECLARE @cver varchar(7)
    SELECT @cver=cversion FROM sys_version
    IF @cver IS NOT NULL
    BEGIN
    IF @cver >= '2.99'
    BEGIN
    PRINT '服务器已经更新到2.99'
                    RETURN
    END
    END--
    打印了:'服务器已经更新到2.99'
    后续的语句照样执行:(
      

  9.   

    return 後面應該要加個返回值的吧
    DECLARE @cver varchar(7)
    SELECT @cver=cversion FROM sys_version
    IF @cver IS NOT NULL
    BEGIN
    IF @cver >= '2.99'
    BEGIN
    PRINT '服务器已经更新到2.99'
                    RETURN 0
    END
    END
    試試