2011-08-26 20 views
51

¿Podría alguien explicarme cómo puedo crear trabajos en la edición SQL Server Express?Cómo crear trabajos en la edición SQL Server Express

+4

Si se refiere a trabajos de SQL Agent, esa funcionalidad no está disponible en Express edition. Consulte la respuesta a esta pregunta para conocer otras posibilidades: http://stackoverflow.com/questions/3788583/automate-a-sql-query-to-run-every-month/3789024#3789024 – 8kb

+0

Express Edition admite SQL Server Broker y usted podría crear un mecanismo personalizado como [aquí] (http://stackoverflow.com/a/41909818/5070879) – lad2025

Respuesta

89

SQL Server Express doesn't include SQL Server Agent, por lo que no es posible simplemente crear trabajos de SQL Agent.

Lo que puede hacer es:
Puede crear trabajos "manualmente" mediante la creación de archivos por lotes y archivos de scripts SQL, y ejecutarlos a través del Programador de tareas de Windows.
Por ejemplo, usted puede respaldo su base de datos con dos archivos como este:

backup.bat:

sqlcmd -i backup.sql 

backup.sql:

backup database TeamCity to disk = 'c:\backups\MyBackup.bak' 

sólo hay que poner los dos archivos en la misma carpeta y ejecute el archivo por lotes a través del Programador de tareas de Windows.

El primer archivo es simplemente un archivo por lotes de Windows que llama al sqlcmd utility y pasa un archivo de script SQL.
El archivo de script SQL contiene T-SQL. En mi ejemplo, es solo una línea para hacer una copia de seguridad de una base de datos, pero puede poner cualquier T-SQL dentro. Por ejemplo, podría hacer algunas consultas UPDATE en su lugar.

+1

¿Dónde debería especificar la información de inicio de sesión? –

+0

@ HasanGürsoy Si está creando una tarea programada que ejecute SQLCMD (con o sin un archivo BAT), le recomendaría que use el parámetro "-E" de SQLCMD, para la autenticación de Windows. Para que eso funcione, defina un inicio de sesión de SQL Server, para el usuario de Windows que es el propietario de la tarea programada de Windows. Si no está claro qué inicio de sesión de Windows ejecuta la tarea, ponga "WHOAMI" (comando DOS) en el archivo BAT y capture la salida del archivo BAT, para ver quién está ejecutando. –

+0

@ HasanGürsoy O, para la autenticación de SQL Server, pondría la contraseña en la tarea programada de Windows (donde los permisos rigen quién puede leerla), en lugar de ponerla en un archivo en cualquier lugar. Va en la línea de comando del archivo BAT. Si es el primer parámetro que se pasa al archivo BAT, dentro del archivo BAT puede referirse a él como% 1, en la línea SQLCMD, por ejemplo. –

23

La funcionalidad de crear trabajos de Agente SQL no está disponible en SQL Server Express Edition. Una alternativa es ejecutar un archivo por lotes que ejecute un script SQL usando el Programador de tareas de Windows.

Para hacer esto primero crear un archivo por lotes denominado sqljob.bat

sqlcmd -S servername -U username -P password -i path of sqljob.sql 

Sustituir el servername, username, password y path con la suya.

A continuación, cree el archivo de secuencias de comandos SQL denominada sqljob.sql

USE [databasename] 
--T-SQL commands go here 
GO 

Sustituir el [databasename] con su nombre de base de datos. El USE y GO es necesario cuando escribe el script SQL.

sqlcmd es una utilidad de línea de comandos para ejecutar scripts SQL. Después de crear estos dos archivos, ejecute el archivo por lotes usando el Programador de tareas de Windows.

NB: Se ha publicado casi la misma respuesta para esta pregunta. Pero sentí que estaba incompleto, ya que no se especifica sobre la información de inicio de sesión usando sqlcmd.

+0

¿Dónde guardaría ese sqljob.sql? y ¿cómo puedo poner cuándo se ejecutará? – WTFZane

Cuestiones relacionadas