これは簡単ではないようですが、私はこの小さな問題の解決方法を考え出すことができませんでした。アプリケーションのデータベースストアドプロシージャでMSDBストアドプロシージャを使用する
アプリケーションのデータベースにストアドプロシージャを作成しようとしています。このストアドプロシージャは、同じサーバー上の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に更新すると、そのシステムデータベースにUSDBを追加しようとします。最後に、元のcreateステートメントを保持しようとしましたが、プロシージャ内にUSE MSDBを追加しましたが(単に 'sp_start_job'プロシージャを使用します)、プロシージャ内にUSEステートメントを置くことはできないというエラーになります。
(私は明らかにSQLデータベースの専門家ではない)少し問題を考えた後、私は解決策を思い付くことができず、私の同僚の助言を求めることに決めました。どんな助けでも大変感謝します。ありがとう!
私はこれを実現しているはずですが、それは長い一日でした。お返事ありがとうございました。ご返信ありがとうございます。これは本当に私の問題を解決しました。 – TheDirtyJenks