Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menjalankan Pekerjaan Agen Server SQL dari prosedur tersimpan dan mengembalikan hasil pekerjaan

Untuk kalian semua yang tidak diperbolehkan untuk menggunakan OPENROWSET perintah, ini mungkin membantu. Saya menemukan awal untuk solusi saya di sini:

http://social.msdn.microsoft.com/Forums/en-US/89659729-fea8-4df0-8057-79e0a437b658/dynamically-checking-job-status-with-tsql

Ini bergantung pada fakta bahwa beberapa kolom msdb.dbo.sysjobactivity tabel pertama diisi setelah pekerjaan selesai dengan satu atau lain cara.

-- Start job
DECLARE @job_name NVARCHAR(MAX) = 'JobName'
EXEC msdb.dbo.sp_start_job @job_name = @job_name


-- Wait for job to finish
DECLARE @job_history_id AS INT = NULL

WHILE @time_constraint = @ok
BEGIN
    SELECT TOP 1 @job_history_id = activity.job_history_id
    FROM msdb.dbo.sysjobs jobs
    INNER JOIN msdb.dbo.sysjobactivity activity ON activity.job_id = jobs.job_id
    WHERE jobs.name = @job_name
    ORDER BY activity.start_execution_date DESC

    IF @job_history_id IS NULL
    BEGIN
        WAITFOR DELAY '00:00:10'
        CONTINUE
    END
    ELSE
        BREAK
END


-- Check exit code
SELECT history.run_status
FROM msdb.dbo.sysjobhistory history
WHERE history.instance_id = @job_history_id

Anda mungkin ingin memasukkan beberapa pemeriksaan untuk berapa lama loop WHILE diizinkan untuk berjalan. Saya memilih untuk tidak memasukkan bagian itu dari contoh.

Panduan Microsoft untuk kode keluar dll.:http://technet.microsoft.com /en-us/library/ms174997.aspx



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah setiap kunci asing SQL Server memiliki indeks yang cocok?

  2. Mengapa kueri T-SQL ke-2 berjalan jauh lebih cepat daripada yang pertama saat dipanggil oleh Reporting Services 2005 di aplikasi web

  3. Apa sebenarnya yang dimaksud dengan indeks Clustered dan Non-Clustered?

  4. INT vs Unique-Identifier untuk bidang ID di database

  5. Tambahkan Offset Zona Waktu ke Nilai datetime2 di SQL Server (T-SQL)