簡體   English   中英

在應用程序的數據庫存儲過程中使用MSDB存儲過程

[英]Using MSDB stored procedures in application's database stored procedure

這似乎是微不足道的,但是我無法提出解決這個小問題的方法。

我正在嘗試在應用程序的數據庫中創建一個存儲過程。 此存儲過程僅執行在同一服務器上的SSMS中設置的作業(似乎是以編程方式執行這些作業的唯一方法)。

簡單的代碼如下所示:

USE ApplicationsDatabase
GO
CREATE PROCEDURE [dbo].[procedure]
AS
BEGIN
    EXEC dbo.sp_start_job N'Nightly Download'
END

按原樣運行時,該過程從技術上來說已創建,但由於它正在使用ApplicationsDatabase而無法找到“ sp_start_job”,因此無法執行。 如果我嘗試再次創建該過程(在刪除先前創建的過程之后)但將USE更新為MSDB,它將嘗試將其添加到我沒有權限執行的系統數據庫中。 最后,我嘗試保留原始的create語句,但在過程中添加了USE MSDB(僅使用'sp_start_job'過程),但是說USE語句不能放在過程中會出錯。

在考慮了一下問題之后(我顯然不是SQL數據庫專家),我無法提出解決方案,並決定征詢同行的建議。 任何幫助將不勝感激,謝謝!

您將必須完全限定該過程的路徑。 當然,您只能執行這是該應用程序具有的權限。

嘗試這個:

USE ApplicationsDatabase
GO
CREATE PROCEDURE [dbo].[procedure]
AS
BEGIN
    EXEC msdb.dbo.sp_start_job N'Nightly Download'
END

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM