SQLServer
在程序中批量执行SQL语句
就像在 查询分析器中 一样
不同语句之间用go分割
在程序中怎么实现呢

解决方案 »

  1.   

    这是我回答另一位朋友的贴子,适合于你,请参考:
    http://expert.csdn.net/Expert/topic/2511/2511049.xml?temp=.1620447
      

  2.   

    SeaWave(NoSound)
    我看了你的方法
    我原本也打算这么来做的,但是感觉比较麻烦
    有没有其他的办法呢,甚至可以更改实现方法也可以的呀
      

  3.   

    SQL Server支持一次执行多条SQL语句的,直接放在SQL.Text就可以
    比如:
    with Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select * From Table1');
      SQL.Add('Update Table2 Set Field1=1');
      Open;
    end;
    两条语句都会被执行
      

  4.   

    你就把go写在sql语句里好了
    如果sql语句不长,不用go也能执行的,否则sqlserver会缓存溢出
      

  5.   

    zzzl
    这样不行吧,报错的呀
      

  6.   

    go不是SQL语句,加在Query.SQL里是要报错的。
    楼上说的两条语句都会执行这不假,但有的SQL语句要求必须在第一句,比方说“create proc”,如果把它放在第二条就会出错。
      

  7.   

    SeaWave
    看来也只有按照这种自己解析语句来做的方法了呀
    暂时还没有找到其他的方法
      

  8.   

    GO
    用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。语法
    GO注释
    GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。 ---
    如果你想在程序里操行两个不同的操作(如create table与create veiew等),最好写成两个动作来执行了.