在工作中,我们有时需要执行一个 SQL 脚本(我们打开这个存储为 C:\SQLScript\man.sql- 的.SQL 文件,设置适当的参数然后执行它)。现在我已经创建了一个 C# 应用程序,该应用程序在我的计算机上运行,并对数据库服务器(.sql 脚本工作的同一服务器)执行一些操作,其中一项操作包括执行该脚本。
问题是:如果 SQL 脚本存储为简单文件而不是真正的存储过程,我该如何执行(从我的 C# 应用程序)?
如果它是一个有效的 sql 文件并且它按原样执行,那么你所要做的就是
string query = File.ReadAllText("yoursqlfilePath");
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(query , connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
我通常会尝试将其转换为传递所需参数的存储过程。但是你可以看看这里采取的方法。它基本上将脚本中的文本读入字符串,然后使用 ExecuteNonQuery 执行它。您可以在调用 ExecuteNonQuery 之前修改文本。
我相信您可以打开文件读取它,然后执行从文件字符串创建的 SQL 命令,然后执行该命令。
我不确定是否有更好的方法,但我会这样做。