Я создаю специальную утилиту для развертывания db, мне нужно прочитать текстовые файлы, содержащие sql-скрипты, и выполнить их в базе данных.
Довольно легкий материал, настолько хороший.
Однако я столкнулся с проблемой, содержимое файла прочитано успешно и полностью, но после его передачи в SqlCommand и затем выполняется с помощью SqlCommand.ExecuteNonQuery выполняется только часть script.
Я активировал Profiler и подтвердил, что мой код не передает все script.
private void ExecuteScript(string cmd, SqlConnection sqlConn, SqlTransaction trans)
{
SqlCommand sqlCmd = new SqlCommand(cmd, sqlConn, trans);
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandTimeout = 9000000; // for testing
sqlCmd.ExecuteNonQuery();
}
// I call it like this, readDMLScript contains 543 lines of T-SQL
string readDMLScript = ReadFile(dmlFile);
ExecuteScript(readDMLScript, sqlConn, trans);