問題タブ [sqlmail]
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.
tsql - ストアド プロシージャが断続的に SQL メールを呼び出す
特定の条件で新しいエントリのテーブルを参照し、見つかった場合は SQL メールを呼び出すストアド プロシージャがあります。ジョブは 15 分ごとに sp を実行します。新しいエントリを電子メールで送信する場合もありますが、SQL ジョブは正常に実行されても電子メールが生成されない場合もあります。SSMS でクエリを実行し、その 15 分間の間にテーブルで新しいエントリを見つけたにもかかわらずです。時間パラメーターを調整/拡張した後に手動で手順を実行したところ、スケジュールされたジョブの実行時に最初に送信されたのではなく、実行の成功が報告された電子メールが正常に生成されました。
私は他のテーブルからの通知に同様のコードを使用しており、それらは一貫して電子メールを生成しているように見えますが、異なる基準で同じテーブルを見ている別の sp も電子メールの生成で断続的です。
GROUP BY と HAVING を使用する代わりに、すべての引数を WHERE ステートメントに移動して、コードを微調整しました。また、時間範囲をさらに 15 分 (<=31 および >=15) 後ろにずらしたり、解決策がまだない 1 つのケースで最小時間引数を削除したりしました。
問題が自分のコード、sp を実行するジョブ、SQL メール、またはクエリしているテーブル (使用している日付列は datetime データ型)、SQL バージョン、パッチ レベルなどにあるのかどうかはわかりません。なぜそれが時々メールを呼び出し、他のものを呼び出さないのか、どこから始めるべきか考えはありますか?
ANSI_NULLS と QUOTED_IDENTIFIER はオンです
以下は、新しいレコードが追加されたときに (実際には同じストアド プロシージャ内で) 電子メールを一貫して生成するように見える例です。
これは、電子メールの生成で断続的ですが、すべての結合なしで同じメインテーブルを使用する別のコードです。
sql-server - SQL Server からメールを送信しながらテーブルから値を動的に取得する
私はテーブルを持っています:
クエリを実行すると のような件名のメールが届きましたが、'MyData+format(getdate(),'yyMMdd')+.CSV'
のような出力が欲しいです'MyData20200317.CSV'
。
テーブルの外側で日付フィールドをマージしたくありません。機能をテーブル内に配置する必要があり、データを処理して結果を取得する必要があります。
ノート:
表の値を変更できる場合は、それも問題ありません。ただし、値はテーブルから選択する必要があります。
実行可能であることを願っています。前もって感謝します。