繁体   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