如何使用C#将修补程序应用于数据库?
我有一个批处理文件,其中包含使用文件夹中的修补程序恢复数据库的命令。我想制作一个GUI应用程序,它可以执行SQL命令,而不是应用文件夹中的所有补丁 我当前在批处理文件中有以下sqlcmd:如何使用C#将修补程序应用于数据库?,c#,sql,C#,Sql,我有一个批处理文件,其中包含使用文件夹中的修补程序恢复数据库的命令。我想制作一个GUI应用程序,它可以执行SQL命令,而不是应用文件夹中的所有补丁 我当前在批处理文件中有以下sqlcmd: sqlcmd -E -S(local) -i "c:\temp\MergedPatchFiles.sql" 文件夹中的修补程序已编号-我需要一种方法来查找数据库的当前修补程序编号和文件夹中的修补程序编号,并使用for each循环仅应用所需的修补程序 如何在指定的数据库上使用C#执行“应用修补程序”SQL命
sqlcmd -E -S(local) -i "c:\temp\MergedPatchFiles.sql"
文件夹中的修补程序已编号-我需要一种方法来查找数据库的当前修补程序编号和文件夹中的修补程序编号,并使用for each循环仅应用所需的修补程序
如何在指定的数据库上使用C#执行“应用修补程序”SQL命令?将SQL文件加载到字符串中,并使用SqlCommand.ExecuteOnQuery方法
将sql文件加载到字符串中,并使用SqlCommand.ExecuteNonQuery方法
您可以通过以下几种方式完成:
- 用于直接执行
(甚至直接执行批处理文件…)sqlcmd
- 加载SQL并使用
- 用于直接执行
(甚至直接执行批处理文件…)sqlcmd
- 加载SQL并使用
如果文件包含GO语句,则可能会遇到问题,因此可以使用: 我需要一种方法来找到数据库的当前补丁号 首先,您如何在数据库中存储您当前所在的修订数据库?我遇到了3种跟踪修订的不同方案:
string scriptDirectory = "c:\\temp\\sqltest\\";
string sqlConnectionString = "Integrated Security=SSPI;" +
"Persist Security Info=True;Initial Catalog=Northwind;Data Source=(local)";
DirectoryInfo di = new DirectoryInfo(scriptDirectory);
FileInfo[] rgFiles = di.GetFiles("*.sql");
foreach (FileInfo fi in rgFiles)
{
FileInfo fileInfo = new FileInfo(fi.FullName);
string script = fileInfo.OpenText().ReadToEnd();
SqlConnection connection = new SqlConnection(sqlConnectionString);
Server server = new Server(new ServerConnection(connection));
server.ConnectionContext.ExecuteNonQuery(script);
}