【发布时间】:2019-12-30 07:21:08
【问题描述】:
我正在尝试运行包含“GO”语句作为批处理分隔符的 SQL 脚本。 我遇到了 Jon Galloway 使用 SMO(nuget 包 Microsoft.SQlServer.SQLManagementObjects)处理这种类型情况的方法。
con = new SqlConnection(connectionString);//1
var serverConnection = new ServerConnection(con);//2
var server = new Server(serverConnection);//3
StreamReader streamReader = new StreamReader(@"D:\Scripts\Install-Northwind-Script.sql");//4
string script = streamReader.ReadToEnd();//5
server.ConnectionContext.ExecuteNonQuery(script);//6
以上代码在第 6 行抛出异常。
System.IO.FileNotFoundException: '无法加载文件或程序集 'Microsoft.SqlServer.BatchParser,版本=15.100.0.0,文化=中性, PublicKeyToken=89845dcd8080cc91' 或其依赖项之一。这 系统找不到指定的文件。'
它给出了 FileNotFound 异常,但它在第 5 行成功读取了文件的所有内容。 我尝试添加 Microsoft.SqlServer.BatchParser 引用,但找不到。
谁能帮我知道我在这里做错了什么?
【问题讨论】:
标签: c# sql-server smo sql-scripts