0

基本的に、電子メール アラートを送信する T-SQL ステートメントを作成しようとしています。以下にクエリを添付しました。クエリは select で始まり、Tat 0 で終了します。実行したいのは、これらのデータを電子メールで返します。

そのクエリを単独で実行すると、正常に返されます。この T-SQL ステートメント全体の中に何かが正しくないと思われます。私は一種のデータベース初心者です。明確化は非常に役立ちます。

begin
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'TRGEmail',
@recipients = 'test@test.com',
@body = 'The cases below have reach TAT 3 for PRI X Ray. Please set accordingly.

',
@query = 'select
 PATIENTS.FirstName, PATIENTS.Lastname, 
 STUDIES.study_datetime, 
 STUDY_LIST_VIEW.tat, 
 PATIENTS.Patient_ID
 from
opalrad.dbo.INSTITUTIONS INSTITUTIONS, 
opalrad.dbo.PATIENTS PATIENTS, 
opalrad.dbo.STATUSES STATUSES, 
opalrad.dbo.STUDIES STUDIES, 
opalrad.dbo.studies_calc studies_calc, 
opalrad.dbo.STUDY_LIST_VIEW STUDY_LIST_VIEW, 
opalrad.dbo.TRANSCRIPTION_TEXT TRANSCRIPTION_TEXT

 where 
STUDIES.study_id = studies_calc.study_id AND 
STUDIES.institution_id = INSTITUTIONS.institution_id AND 
TRANSCRIPTION_TEXT.STUDY_ID = STUDIES.study_id AND 
TRANSCRIPTION_TEXT.STUDY_ID = studies_calc.study_id AND 
PATIENTS.Patient_ID = STUDIES.patient_id AND 
STUDY_LIST_VIEW.INSTITUTION_ID = INSTITUTIONS.institution_id AND 
STUDY_LIST_VIEW.PATIENT_ID = PATIENTS.Patient_ID AND 
STUDY_LIST_VIEW.study_id = STUDIES.study_id AND 
STUDY_LIST_VIEW.study_id = studies_calc.study_id AND 
((INSTITUTIONS.institution_id= 569 ) AND 
(STUDY_LIST_VIEW.tat=0))',
 @subject = 'PRI STAT 3 requiring attention';
 end
4

1 に答える 1

1

SQL Server の代わりに Web サーバーを使用して実際に電子メールを送信することは可能ですか? もしそうなら、私はそれをすることをお勧めします。

これを行うためにデータベースを使用することは、パフォーマンスの点で危険です。カーソルは、各行で個別に操作を実行する必要があるため、通常は低速です。この場合、行ごとにプロシージャを呼び出しているため、事態がさら​​に悪化する可能性があります。

結果セットを Web サーバーに返すだけで、組み込みの電子メール機能を使用できます。クエリが正常に機能するため、データベースの問題が解決され、将来的に多くのパフォーマンス上の問題を回避できる可能性があります。

<b>余談ですが、タグの代わりにスタイル設定に CSS を使用することは可能ですか? ;)

編集: この機能を Web サーバーに移動できない場合は、行末に一重引用符を追加してみてくださいset @tableHTML。末尾の引用符が欠落しているため、構文エラーが発生します。さらに、使い終わったら必ずカーソルの割り当てを解除してください。DEALLOCATE cursorName

于 2013-01-22T21:29:41.240 に答える