0
我有一個數據庫表,它具有通過從日誌文件導入插入的新記錄。我想寫一個作業,當一個特定的新字段被輸入時發送一個警報。到目前爲止,我一直在檢查該字段中唯一條目的數量,當它增加設置值時,我會收到警報。問題是每次我需要返回並更新查詢中的計數。所以只是想知道是否有另一種方式來做到這一點。將新值輸入到特定列時的操作
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 = '[email protected]',
@copy_recipients = '[email protected]',
@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場也被更新。客戶端密鑰字段是我關心的一個,客戶端密鑰可以有多行,但我需要知道何時插入了一個尚未插入的新密鑰。
感謝您的迴應非常有幫助。在我實現之前,只是想補充說我有一個日期列,當自動導入發生時更新,所以我可以應用到上面的第二個建議(觸發後) – vbNewbie 2012-07-05 14:07:01
@vbNewbie爲什麼,你自己設置日期值?你知道在觸發器中找到的所有行都會比表中的任何行都大嗎?你的桌子沒有主鍵嗎? – 2012-07-05 14:08:56
我其實不是。其他人處理導入,但日期在文件導入發生時自動更新。該表沒有主鍵。我將添加上面的表格的結構 – vbNewbie 2012-07-05 14:14:20