使用C#在SQL Server上执行sql文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用C#在SQL Server上执行sql文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1274字,纯文字阅读大概需要2分钟。
内容图文
![使用C#在SQL Server上执行sql文件](/upload/InfoBanner/zyjiaocheng/900/223fff46bd764f388307fc2c7c6d828d.jpg)
我有很多程序,视图,函数等文件.
我想在SQL Server 2005/2008上的相应数据库中执行这些文件(创建组件).
另外一点是我想用C#执行它们.
还有一点需要提及,我希望应用程序能够在远程SQL Server上执行此文件.客户端机器也可能没有osql,sqlcmd命令工具.
有人可以指导我这个.
解决方法:
这取决于它们是什么类型的文件.例如,如果它们只包含实际的T-SQL命令(并且不是您运行的批处理文件,例如SSMS,它将包含像GO这样的批处理分隔符),那么您只需要创建一个连接,一个命令,然后读取该文件的内容并使用它来填充该命令的CommandText属性.
例如:
void ExecuteFile(string connectionString, string fileName)
{
using(SqlConnection conn = new SqlConnection(connectionString))
{
string data = System.IO.File.ReadAllText(fileName);
conn.Open();
using(SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = data;
cmd.ExecuteNonQuery();
}
}
}
如果它是批处理文件,则需要将文件拆分为单独的批处理并单独处理.最简单的方法就是使用string.Split,但请记住,它在分割时不会尊重SQL解析规则(例如,如果GO出现在SQL语句中,它会将命令分成两批,这显然会失败).
更一般地说,您可以通过以下方式修改代码来查看您需要执行的操作:
string[] batches = SplitBatches(System.IO.File.ReadAllText(fileName));
conn.Open();
using(SqlCommand cmd = conn.CreateCommand())
{
foreach(string batch in batches)
{
cmd.CommandText = batch;
cmd.ExecuteNonQuery();
}
}
一个名为SplitBatches的函数的实现由您决定.
内容总结
以上是互联网集市为您收集整理的使用C#在SQL Server上执行sql文件全部内容,希望文章能够帮你解决使用C#在SQL Server上执行sql文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。