Академический Документы
Профессиональный Документы
Культура Документы
NET
En este artculo veremos como se puede ejecutar un Script SQL Server para realizar una copia de seguridad utilizando C# en Visual Studio con la ayuda de SQLCMD. SQLCMD es la lnea de comandos de SQL Server. Esta lnea de comandos nos permite ejecutar scripts T-SQL. SQLCMD es un mtodo rpido y sencillo de ejecutar scripts. En Visual Studio estaremos llamando a SQLCMD utilizando la clase ProcessStartInfo. Esta clase es utilizada para iniciar procesos. En este cdigo vamos a llamar al proceso SQLCMD. Al final del artculo tendrn una aplicacin de ejmplo con un botn con una llamada a un script .sql. En este caso, el script generar una copia de seguridad de la base de datos:
El botn "llamar a SQLCMD" crear una copia de seguridad utilizando la clase ProcessStartInfo. Para mayor referencia acerca de la clase ProcessStartInfo, el sqlcmd y ejecucin scripts con sqlcmd puedes leer aqu.
Los archivos includos: pruebas.zip es la copia de seguridad de la base de datos y callSQLcmd.zip es el proyecto en Visual Studio 2010 para c# y Vb.NET.
Demostracin
Primero que todo hay que crear un script llamado backup.sql para realizar la copia de seguridad de la base de datos. El nombre del script es backup.sql y contiene:
BACKUP DATABASE [Pruebas] TO DISK = N'C:\backup\pruebas.bak' WITH NOFORMAT, NOINIT, NAME = N'test-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
Este script crear una copia de seguridad de la base de datos de prueba. Para ejecutar el script backup.sql utilizando sqlcmd, ve a la ventana de lnea de comandos y ejecuta la siguiente sentencia:
Explicacin
-S .\sqlexpress (la S est en maysculas) indica el nombre del servidor. En este caso es la mquina local y una instancia SQL Server Express. Por ejemplo, si ests utilizando la instancia por defecto y el nombre del servidor es Server1 y el dominio del Directorio Activo es llamado sqlcentral, la lnea de comandos podra ser:
El parametro -i es la entrada (es en minsculas) y c:\backup.sql es la ruta del script. Por defecto se utiliza la autentificacin por Windows.
using System.Diagnostics;
Tambin:
// Indica si el cursor del sistema operativo es utilizado, en este caso no UseShellExecute = false; //ninguna ventana nueva es requerida info.CreateNoWindow = true; //The windows style will be hidden info.WindowStyle = ProcessWindowStyle.Hidden; //The output will be read by the starndar output process info.RedirectStandardOutput = true; Process proc = new Process(); proc.StartInfo = info; //Start the process proc.Start();
En esta seccin estamos llamando a sqlcmd y ejecutando el script backup.sql utilizando la clase processStartInfo. Es el ncleo del cdigo. El resto es solo la configuracin nde los parmetros del proceso. El cdigo est llamando a la instancia del servidor SQL Express utilizando el parametro -S. El parmetro -i es la entrada. En este ejemplo la entrada es el script backup.sql. La autentificacin utilizada es la autentificacin por Windows, mientras el usuario que ejecute la aplicacin tenga permisos en la base de datos, no habr problemas.
Probando tu cdigo
Ahora presiona el botn Ejecutar en Visual Studio y haz click en el botn del formulario. Una nueva copia de seguridad debera crearse en c:\backup.
Conclusin
En este artculo vemos como llamar a sqlcmd y ejecutar un script Sql utilizando visual studio.