Me gustaría almacenar scripts largos .sql en mi solución y ejecutarlos programáticamente. Ya he descubierto cómo ejecutar una cadena que contiene mi script sql, pero no he descubierto cómo leer la cadena de un archivo que se almacenará en la solución (en una subcarpeta/Scripts, por ejemplo).Ejecutar un script SQL almacenado como recurso
Respuesta
Primero, edite las propiedades del archivo .sql para que se incruste como recurso.
A continuación, utilice código similar al siguiente para recuperar el script:
string commandText;
Assembly thisAssembly = Assembly.GetExecutingAssembly();
using (Stream s = thisAssembly.GetManifestResourceStream(
"{project default namespace}.{path in project}.{filename}.sql"))
{
using (StreamReader sr = new StreamReader(s))
{
commandText = sr.ReadToEnd();
}
}
@Will - En un proyecto SQL CLR parece que no hay forma de agregar un archivo de recursos fuertemente tipado. – jpierson
Los recursos de @Will son una solución pobre también, imho. No parece haber una manera de modificar los comentarios generados en XML, y resúmenes como * Busca una cadena localizada similar a la que crea la tabla dbo.Foo (... * apenas son útiles. – Stijn
añadir los archivos SQL para su proyecto a continuación, crear un nuevo archivo de recursos. Abra el archivo SQL y seleccione 'Archivos' en el menú desplegable superior izquierdo (el valor predeterminado es Cadenas). Luego presiona agregar recurso y navega hacia/selecciona el archivo SQL. Esto le permite obtener SQL del archivo de recursos sin perder la seguridad de tipos, así:
Lo anterior es el proceso en Visual Studio 2010. También escribí sobre esto en my blog.
Sepa que esta es una publicación anterior. muy claro, pero ¿cómo se puede agregar parámetros al script? – zmaster
Debería poder usar 'string.Format' para esto. –
Agregar a resrouces, y establecer el archivo en Resources, en el código escribir NAMESPACE.Properties.Resources .ScriptDB.ToString() –
Agregar archivo a Recursos y conjunto de archivos de recursos , en el código de escritura:
String SQLCommand = NAMESPACE.Properties.Resources.ScriptDB.ToString()
Uso QueryFirst. Pones tu sql en la plantilla .sql proporcionada por la herramienta. Detrás de escena, QueryFirst lo compila como un recurso y conecta la llamada para recuperarla en tiempo de ejecución. Solo necesita preocuparse por llamar a Execute() en la clase contenedora generada, y sus resultados son accesibles a través de POCO generados. Seguridad de extremo a extremo. Nunca tiene que recordar un nombre de columna o tipo de datos, además de las considerables ventajas de tener su sql donde Dios pretendía ... en un archivo .sql.
exención de responsabilidad: Escribí QueryFirst
- 1. clojure: descomprimir un archivo comprimido almacenado como recurso
- 2. Cómo ejecutar un script .sql desde bash
- 3. Cómo ejecutar un script sql usando C#
- 4. Ejecutar script sql en un esquema diferente
- 5. ¿Usar la función como parámetro al ejecutar un procedimiento almacenado?
- 6. Ejecutar procedimiento almacenado en SQL Developer?
- 7. Cómo ejecutar un archivo ejecutable incrustado como recurso
- 8. Ejecutar un procedimiento almacenado de SQL y procesar los resultados
- 9. Ejecutar un procedimiento almacenado como permiso de otro usuario
- 10. Ejecutar un procedimiento almacenado dentro de un procedimiento almacenado
- 11. ¿Cómo ejecutar un script SQL en un archivo MDF?
- 12. ¿Cómo ejecutar un procedimiento almacenado de Oracle?
- 13. Ejecutar SQL Script con el ejecutable .net
- 14. Ejecutar un script .sql usando MySQL con JDBC
- 15. ejecutar un archivo de script sql desde cx_oracle?
- 16. ¿Cómo ejecutar un script como root en Mac OS X?
- 17. Ejecutar un script como root a través de ADB
- 18. ¿Puedo ejecutar un script de Python como servicio?
- 19. ¿Cómo ejecutar un script como root en Jenkins?
- 20. Procedimiento almacenado al ejecutar otro procedimiento almacenado
- 21. Ejecutar el paquete SSIS de SQL Server del procedimiento almacenado
- 22. ¿Cómo ejecutar el procedimiento almacenado desde SQL Plus?
- 23. Ejecutar procedimiento almacenado con valores de tabla como parámetro
- 24. ¿Ejecutar un script al desbloquear?
- 25. Ejecutar un script bash desde un script R
- 26. Cómo pasar un parámetro a un SQL de empleo que ejecutar un procedimiento almacenado
- 27. ¿Cómo desactivo los resultados de la consulta al ejecutar un procedimiento almacenado desde un procedimiento almacenado?
- 28. Servidor MS SQL: verifique si un usuario puede ejecutar un procedimiento almacenado
- 29. Abrir un recurso JAR como un FileStream
- 30. ¿Debo usar sp_executesql o EXEC para ejecutar un procedimiento almacenado?
Hay una respuesta muy detallada sobre el recurso incrustado en una pregunta duplicado https://stackoverflow.com/questions/23301964/ef-6-code-first-with-custom-stored -procedure/39673550 # 39673550 –