Estoy creando una utilidad de despliegue db personalizada, necesito leer archivos de texto que contengan scripts sql y ejecutarlos en la base de datos.SqlCommand() ExecuteNonQuery() trunca el texto del comando
Cosas bastante fáciles, hasta ahora todo bien.
Sin embargo, he encontrado un inconveniente, el contenido del archivo se lee con éxito y completamente, pero una vez pasado al SqlCommand y luego se ejecuta con SqlCommand.ExecuteNonQuery, solo se ejecuta parte del script.
Encendí Profiler y confirmé que mi código no está pasando todo el 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);
¿Qué personaje es el guión truncado? – MikeWyatt
¿Cómo funciona el método 'ReadFile'? ¿Estás 200% seguro de que no se está saltando algunos personajes, quizás? ¿Por qué no usar 'System.IO.File.ReadAllText (filename)' ?? –
cómo * mucho * texto estás leyendo del archivo, en bytes? –