Sql server 2008 已删除记录的日志计数
当我试着运行这个Sql server 2008 已删除记录的日志计数,sql-server-2008,tsql,Sql Server 2008,Tsql,当我试着运行这个 DECLARE @by varchar(20) = 'Myself' INSERT INTO dbo.MiscLog(LogType, onTable, Message, CreateBy) SELECT 'Info', 'dbo.History', 'There are ' + CONVERT(varchar(20), COUNT(ID)) + ' old records being purged.', @by FROM
DECLARE @by varchar(20) = 'Myself'
INSERT INTO dbo.MiscLog(LogType, onTable, Message, CreateBy)
SELECT
'Info', 'dbo.History',
'There are ' + CONVERT(varchar(20), COUNT(ID)) + ' old records being purged.', @by
FROM
(DELETE FROM dbo.History
OUTPUT deleted.ID
WHERE keyDate < dateadd(y, -7, getDate())) H
我明白了
味精5322,第15级,状态1,第5行
当FROM子句包含嵌套的INSERT、UPDATE、DELETE或MERGE语句时,SELECT子句中不允许使用聚合函数
尝试将已删除记录的副本插入临时表,然后在临时表上运行计数聚合
SELECT *
INTO #tempLog
FROM
(DELETE FROM dbo.History
OUTPUT deleted.ID
WHERE keyDate < dateadd(y, -7, getDate())) H
INSERT INTO dbo.MiscLog(LogType, onTable, Message, CreateBy)
SELECT
'Info', 'dbo.History',
'There are ' + CONVERT(varchar(20), COUNT(ID)) + ' old records being purged.', @by
FROM #tempLog
在表上创建删除后触发器。您可以查询已删除的计数
SELECT COUNT(*)
FROM deleted