tutorial stored script listar job ejecutar descargar create como sql sql-server sql-server-agent sql-job

stored - Trabajo del Agente de SQL Server-¿Existe entonces Drop?



sql server create job to execute stored procedure (4)

Puede crear una tarea Ejecutar script y ejecutarla como un trabajo ...

¿Existe una forma similar en SQL para lograr lo siguiente, pero con trabajos de servidor de SQL en su lugar?

así es como lo hago para los procedimientos almacenados ...

if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[storedproc]'') and OBJECTPROPERTY(id, N''IsProcedure'') = 1) drop procedure [dbo].[storedproc] GO CREATE PROCEDURE [dbo].[storedproc] ...


Pruebe algo como esto:

DECLARE @jobId binary(16) SELECT @jobId = job_id FROM msdb.dbo.sysjobs WHERE (name = N''Name of Your Job'') IF (@jobId IS NOT NULL) BEGIN EXEC msdb.dbo.sp_delete_job @jobId END DECLARE @ReturnCode int EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N''Name of Your Job''

Lo mejor es leer los documentos sobre todos los parámetros necesarios para ''sp_add_job'' y ''sp_delete_job''


IF EXISTS (SELECT job_id FROM msdb.dbo.sysjobs_view WHERE name = N''Your Job Name'') EXEC msdb.dbo.sp_delete_job @job_name=N''Your Job Name'' , @delete_unused_schedule=1


Si genera la secuencia de comandos SQL para un trabajo (probado con el administrador de la empresa), crea automáticamente la verificación de las declaraciones de presencia y exclusión. Ejemplo a continuación: -

DECLARE @JobID BINARY(16) DECLARE @ReturnCode INT SELECT @ReturnCode = 0 -- Delete the job with the same name (if it exists) SELECT @JobID = job_id FROM msdb.dbo.sysjobs WHERE (name = N''My test job'') IF (@JobID IS NOT NULL) BEGIN -- Check if the job is a multi-server job IF (EXISTS (SELECT * FROM msdb.dbo.sysjobservers WHERE (job_id = @JobID) AND (server_id <> 0))) BEGIN -- There is, so abort the script RAISERROR (N''Unable to import job ''''My test job'''' since there is already a multi-server job with this name.'', 16, 1) END ELSE -- Delete the [local] job EXECUTE msdb.dbo.sp_delete_job @job_name = N''My test job'' SELECT @JobID = NULL END