随笔 - 87  文章 - 1  评论 - 610  阅读 - 44万

通过OSQL命令执行SQL SERVER批SQL

通过System.Data.SqlClient命名空间只能执行单条SQL,或多个内容中间用;分开,不能执行类似等命令,有没有一种方法能类似查询分析器一样执行一些批命令呢,答案是通过OSQL来执行。
OSQL详细用法:http://technet.microsoft.com/zh-cn/library/ms162806.aspx
通地进程来调用:
    /// <summary>
        
/// 执行OSQL命令
        
/// </summary>

        public static  void ExcuteOsqlCmd(string cmd, string errorFile, string filePath)
        
{
            System.Diagnostics.Process p 
= new System.Diagnostics.Process();

            p.StartInfo.FileName 
= "osql";
            p.StartInfo.Arguments 
= cmd;
            p.StartInfo.UseShellExecute 
= false;

            p.StartInfo.RedirectStandardError 
= true;
            p.StartInfo.CreateNoWindow
=true;
            p.Start();
            p.WaitForExit();
            
//p.Close();
            int exitCode = p.ExitCode;
            
if (exitCode != 0)
            
{
                StreamReader sr 
= new StreamReader(errorFile, System.Text.Encoding.Default);
                
string all = sr.ReadToEnd();
                sr.Close();
                
//ExcuteOtherCmd(string.Format("notepad \"{0}\"", errorFile));
                throw new StepException(all);
            }


        }
调用如下:
string comm = string.Format(" -U {5} -P {0} -S {1} -d {2} -b -e  -i \"{3}\" -o \"{4}\"", pass,
                                         conn.DataSource,
                                         conn.Database,
                                         FilePath, errorFile,user);
Process.ExcuteOsqlCmd(comm, errorFile, FilePath);//直接执行一个SQL文件,路径为FilePath



posted on   edobnet  阅读(4648)  评论(5编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
< 2008年1月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

点击右上角即可分享
微信分享提示