問題タブ [sql-server-job]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - SQL Server ジョブの依存関係
SQL Server 2000 で毎晩実行してデータを更新するジョブがあり、データが更新された後に実行していくつかのレコードを更新する別のジョブがあります。これらのジョブは両方とも互いに関連していません。データ更新ジョブが失敗した場合、更新ジョブを停止または無効にする方法を知る必要があります。
sql-server - SQL Server ジョブから Windows イベント ビューアに書き込む
私はSQL Server 2012で作業しており、日中のさまざまな時間に実行するようにいくつかのジョブを設定しています。ジョブが失敗した場合、そのようなアラートを受け取りたいです。
サーバーには、イベントビューアを監視するソフトウェアがいくつかあります。ジョブが失敗した場合にサーバーのイベント ビューアに書き込むようにジョブを設定したいと考えています。イベントID999とエラーレベルで書きたいと思います。
そのようにジョブを設定するにはどうすればよいですか?
sql - UPDATE トリガーで SQL クエリを実行したジョブを取得する
Web アプリケーション内で実行されるアクション、SQL サーバー エージェント ジョブ、データベースに対して手動でクエリを実行するアクションの監査証跡を作成しようとしています。トリガーを使用して、特定のテーブルの更新、挿入、および削除をキャッチしようとしています。
全体として、このプロセスは機能しています。たとえば、ユーザーが Web アプリケーションで更新を実行し、トリガーが更新されたデータを、アクションを実行した人のユーザー名を含む、定義した監査証跡テーブルに書き込みます。これは、Web アプリケーションまたは手動クエリの観点からは正常に機能しますが、特定のクエリを実行した SQL Server エージェント ジョブも多数あります。各エージェント ジョブは、同じユーザー名で実行されます。これも正常に機能し、ユーザー名をテーブルに正しく入力しますが、このクエリを呼び出すジョブが見つかりません。
私の現在の「解決策」は、トリガー時に現在実行されているジョブを見つけることでした。そのうちの1つが正しいものでなければならないからです。使用:
テストのために特定のジョブを実行しましたが、動作しているように見えます。実行中のその他のジョブは にリストされますが@runningJobs
、それを実行するジョブは記録されません。トリガーが実行されるまでに、ジョブは終了していると思います。
トリガーを開始するクエリを呼び出すジョブを見つける方法はありますか?
編集:SELECT
上記のクエリを変更して、過去 2 分以内に実行された、または現在実行中のジョブを取得しようとしました。SQL クエリは次のようになります。
ジョブを実行し、ジョブの実行中に上記のクエリを実行すると、正しいジョブが返されます。ただし、SQL Server エージェント ジョブを介して、または SSIS で手動で実行して SSIS パッケージを実行すると、@runningJobs
は読み込まれず、単に が返されますNULL
。
だから私は今、それがSSISとのパーミッションの問題だと考えていmaster.dbo.xp_sqlagent_enum_jobs
ます. 他のアイデアはありますか?
編集#2:実際には、それがパーミッションエラーだとは思わないでください。このコードの下にステートメントがありINSERT
ます。パーミッション エラーの場合、INSERT
ステートメントは実行されないため、監査行はデータベースに追加されません。runningJobs
そのため、フィールドが入力されていないだけで、データベースに行が追加されているためです。奇妙な時代。
編集#3:明確にしたいのですが、各仕事に行って何かを変更する必要のない解決策を探しています。これを実行可能な解決策にするには、仕事が多すぎます。
sql-server-2008-r2 - SQL Server ジョブからの電子メール通知
SQL Server 2008 R2 のデータベース メールでプロファイルを設定し、チームのすべての開発者が夜間のジョブが完了したときに通知を受け取るようにしたいと考えています。
残念ながら、ジョブの Notifications プロパティでは、Operator ( Data Management Developers ) の 1 つしか選択できず、Operator を使用する際の問題は、文字数 (したがって電子メール アドレスの数) に 100 nvarchar の制限があることです。 ) を追加できます。
通知用の新しいプロファイルを選択するにはどうすればよいですか? オペレーターを削除する必要がありますか?
php - Linux サーバー: ユーザーにメールを送信する
サーバーが毎日実行するサーバースクリプトとジョブを作成するのは初めてです。
私の問題は次のとおりです。
ユーザーがしなければならない特定の仕事を思い出させるメールをユーザーに送信したいと考えています。
私の考え:
データベース -> 通知が必要なすべてのユーザーを収集し、それらをテーブルに挿入しますnotify_user
スクリプト -> すべてのユーザーを検索してメールを送信
スクリプト -> テーブルからすべて削除
このスクリプトは、たとえば 24 時間ごとなど、毎日特定の時刻に実行されます。
前に述べたように、私はそのようなスクリプトをセットアップする方法にあまり熱心ではありません。
私のサーバーは Ubuntu サーバーで、アプリケーションは PHP プログラムです。
この問題を解決するものを見つけることができなかったので、これを達成する方法を知っている人や、この件に関するドキュメントがどこにあるか知っている人はいますか?
sql-server-2012 - sp_send_dbmail が SQL Server エージェント ジョブで失敗する
誰かが次の問題を説明して解決できますか。ありがとう。
Windows Server 2012 上の SQL Server 2012 で実行すると、このクエリの問題が発生しました。
クエリ (@query) は、スタンドアロンの場合は非常にうまく動作しますが、SQL Server エージェント ジョブに配置すると結果が表示されません (以下を参照)。
興味深いことに、Windows Server 2008 で動作する Sql Server 2012 でテストしたところ、スタンドアロンでも SQL Server エージェント ジョブでも完全に動作しました!!?
sql-server - SQL Server エージェントからバッチ ファイルを実行できません (アクセスが拒否されました)
SQL Server エージェントからバッチ ファイルを実行しようとしています (一部の SSIS パッケージを実行する前に実行する必要があるため)。ジョブを実行すると、「アクセスが拒否されました」と言って数秒で失敗します。
SQL Server エージェントを実行するアカウントは、バッチ ファイルを含むフォルダーを完全に制御できます。バッチの結果として、フォルダー内のいくつかのファイルが削除され、Web サービスが呼び出され、同じファイルが Web サービスから返されます。自分の (管理者) アカウントで起動すると、バッチ ファイルを実行できます。
私はグーグルで検索し、他のいくつかの質問と回答を見つけましたが、それらのどれも私の問題をカバーしていませんでした. 他のオプションを指摘していただければ幸いです。
ご協力いただきありがとうございます。
ヨハン
バッチ ファイルの内容:
SQL Server エージェント ジョブからのバッチ ファイル実行ステートメント (タイプ オペレーティング システム (CmdExec)):