首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示已删除的记录时间点SQL Server

显示已删除的记录时间点SQL Server
EN

Stack Overflow用户
提问于 2018-02-12 04:31:16
回答 1查看 196关注 0票数 1

我想写一个函数/存储过程,其中我想传递一个日期和时间,并获取特定日期和时间内存在的所有行,如果记录在该日期和时间之后被删除,它应该显示它们,否则不会。

假设我有一个有100行的表(id, name, createdate),今天上午10:30之前,我在今天上午10:30删除了30条记录,我用今天的日期和时间10:35运行我的函数,它应该返回70条记录,但是如果我用一个更早的日期运行函数,比如今天上午09:30的日期,它应该返回100条记录。

请在SQL Server中回复此问题的最佳解决方案。我不想创建一个单独的已删除项目表,然后与之进行比较和显示。

EN

回答 1

Stack Overflow用户

发布于 2018-02-12 04:38:00

DELETE将删除这些行,以后将无法查看这些行。

除非使用,否则您使用的是Sql Server 2016+,然后您可以使用System versioned temporal table

您可以创建一个IsActive列或类似的东西,而不是DELETE您的UPDATE tbl SET IsActive = 0, dateInactivated = getdate() WHERE...

然后在您的存储过程中,您将:

代码语言:javascript
复制
SELECT * 
FROM tbl
WHERE IsActive = 1
OR (IsActive = 0 AND dateInactivated > @myDate)

(编辑原因:下面是有用的评论)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48736136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档