我使用Microsoft的SMO(SQL Server管理对象)来执行包含GO
语句的SQL脚本,因为常规System.Data.SqlClient无法将GO
识别为命令。它实际上运行正常(我认为..)但似乎每个GO语句都返回-1。所以使用以下代码..
using (var cnn = new SqlConnection(connectionString))
{
try
{
cnn.Open();
Console.WriteLine("Connection Successful!");
var server = new Server(new ServerConnection(cnn));
var rows = server.ConnectionContext.ExecuteNonQuery(SqlStuff.CommandText);
Console.WriteLine($"Script Successful: {rows} affected");
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine("Cannot connect to Server: " + ex.Message);
Console.ReadLine();
}
}
我的控制台显示“脚本成功:-47受影响”,查看我的脚本之后是GO
的确切数量。我的查询是否正常为每个GO
返回-1?我似乎无法找到它的文档,并且它关注我的部分查询未正确执行,即使此时它似乎已生成我需要的表。这是我第一次使用SMO,我只需要确保这是正常的。