go表示提交.如果用command执行的话,必须一个go之内的语句用command执行一次.
这样会麻烦.另可直接把sql存成文件,然后调用osql来执行文件就可

解决方案 »

  1.   

    比如,我要执行d:下的aa.sql文件,调用命令行程序osql -S localhost -E -d test -i d:\aa.sql
      

  2.   

    如果用go的话语句会出错的我就是把一些create procedure语句放到一起
      

  3.   

    cpp2017(慕白兄) 我是用在网络上收到的数据然后再执行的这样要把他先存起来再执行.需要花比较多的时间能不能修改sql直接就可以执行呢
      

  4.   

    不行啊这样还要去拆分字符串太麻烦不能通过修改sql的方式实现吗?
      

  5.   

    直接 调用osql执行 最方便 可靠啊
    System.Diagnostics.Process sqlProcess = new System.Diagnostics.Process();
    sqlProcess.StartInfo.FileName = "cmd.exe";
    sqlProcess.StartInfo.Arguments = "/c "+ " echo off echo 执行数据库更新...";
    sqlProcess.StartInfo.FileName = "osql.exe";
    //string a = String.Format(" -U {0} -P {1} -d {2} -i Weblogs.sql",tbUser.Text.Trim(),tbPassword.Text.Trim(),"master",Application.StartupPath+"\\");
    sqlProcess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -d master -i Weblogs.sql",tbUser.Text.Trim(),tbPassword.Text.Trim());
    sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
    sqlProcess.Start();
    sqlProcess.WaitForExit() ;//等待执行
    sqlProcess.Close();
      

  6.   

    sql语句,和错误信息贴出来,大家才方便找原因阿