Ian*_*ose 5 .net sql-server ado.net sql-server-2008
我们有一些代码读取一组SQL脚本文件,在对它们进行一些处理之后,通过查找"GO"关键字将它们分成批处理,然后使用单独的SqlCommon将每个批处理发送到Sql Server.
有没有更好的方法来做到这一点,所以我们:
(批处理主要是创建表,索引,视图和存储过程.速度是一个问题,因为我们的集成测试经常调用代码.sql-server常用行工具可能没有安装在运行此代码的机器上.)
事实上最快的解决方案是在 GO 上进行分裂。然而,另一种替代方法是使用 SQL 管理对象 (SMO) 并将整个脚本一次性发送到 SQL Server,就像使用 Management Studio 一样。
var connectionString = ConfigurationManager.ConnectionStrings[ connectionStringName ].ConnectionString;
using ( var sqlConnection = new SqlConnection( connectionString ) )
{
var server = new Server( new ServerConnection( sqlConnection ) );
server.ConnectionContext.Connect();
server.ConnectionContext.ExecuteNonQuery( sqlFileContents );
server.ConnectionContext.Disconnect();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |