gpt4 book ai didi

sql - 在应用程序的数据库存储过程中使用 MSDB 存储过程

转载 作者:行者123 更新时间:2023-12-02 09:22:19 25 4
gpt4 key购买 nike

这似乎是微不足道的,但我一直无法想出解决这个小问题的方法。

我正在尝试在应用程序的数据库中创建存储过程。此存储过程仅执行在同一服务器上的 SSMS 中设置的作业(似乎是以编程方式执行这些作业的唯一方法)。

简单代码如下:

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

按原样运行时,该过程在技术上已创建,但无法执行,因为它使用应用程序数据库而无法找到“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

关于sql - 在应用程序的数据库存储过程中使用 MSDB 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41514463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com