我有一个使用Microsoft Sql Management Objects(SMO)dll的Web应用程序。我想知道如何重新分配远程机器的库。
据我所知,这些来自SQL服务器或Sql express - 它不在远程(共享)网络服务器上。要求主机安装它们可能是不可能的,因此可以动态加载它们吗?
见下面的错误 -
无法加载文件或程序集“Microsoft.SqlServer.Smo,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91”或其依赖项之一。系统找不到指定的文件。
或者,如果任何人都可以为下面的代码段提供一个也很有用的解决方法。脚本变量是一个SQL安装脚本,已经读到最后。关于这一点的好处是从SQL输出每个执行字符串。我当然可以在一个块中执行它,但是它不会逐行向用户提供可视反馈,即sql执行正常。
是否存在可以执行此类操作的存储过程?或者在没有完全权限的情况下执行安装脚本的替代方法。
Dim connection As New SqlConnection(Me.ConnectionString)
connection.Open()
connection.Close()
Dim server As New Server(New ServerConnection(connection))
server.ConnectionContext.SqlExecutionModes = SqlExecutionModes.ExecuteAndCaptureSql
Dim commands As StringCollection = server.ConnectionContext.CapturedSql.Text
server.ConnectionContext.ExecuteNonQuery(script, ExecutionTypes.ContinueOnError)
Dim s As String
For Each s In server.ConnectionContext.CapturedSql.Text
AppendMessages(s)
Next
答案 0 :(得分:2)
http://www.mattberther.com/2005/04/11/executing-a-sql-script-using-adonet/
来自
http://coolthingoftheday.blogspot.com/2006/11/execute-t-sql-scripts-with-gos.html
是我在寻找什么,并且做到了。
答案 1 :(得分:1)
您可以尝试使用sql server附带的sqlcmd utilty
答案 2 :(得分:0)
不,您无法动态加载它们,不,您无法在没有权限的情况下安装它们。对不起,但没有骰子。