ログ ファイルからのインポートによって新しいレコードが挿入された DB テーブルがあります。特定の新しいフィールドが入力されたときにアラートを送信するジョブを書きたいと思います。今のところ、そのフィールドの一意のエントリの数を確認しており、設定値が増加するとアラートが表示されます。問題は、毎回戻ってクエリのカウントを更新する必要があることです。だから、これを行う別の方法があるかどうか疑問に思っています。
Declare @count as int
select @count = count(clientkey) from QueryData group by clientkey
If @@ROWCOUNT > 18
EXEC msdb.dbo.sp_send_dbmail @profile_name='DB Admin',
@recipients = 'joe@mail.com',
@copy_recipients = 'pete@mail.com',
@subject = 'GPDB Warning',
@body = 'A new clientkey is being used in the QueryData table'
どんな反応でも感謝します
編集:
テーブル
CREATE TABLE [dbo].[QueryData](
[ImportDate] [datetime] NULL,
[clientKey] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[QueryTerms] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[UpdatedDate] [datetime] NULL,
[LastSearchDate] [datetime] NULL,
[QueryActivity] AS (datediff(day,[UpdatedDate],[LastSearchDate])) PERSISTED,
[ImportMethod] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[PowerField] [nvarchar](5) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
そのため、インポートが発生すると、importdate が更新され、updatedDate フィールドも更新されます。clientKey フィールドは私に関係するものであり、clientkey には複数の行が存在する可能性がありますが、まだ挿入されていない新しいキーがいつ挿入されるかを知る必要があります。