首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据SQL Server2008中的日期时间戳,允许查询/视图查看表过去的外观的最佳方法是什么?

根据SQL Server2008中的日期时间戳,允许查询/视图查看表过去的外观的最佳方法是什么?
EN

Stack Overflow用户
提问于 2010-02-26 14:25:20
回答 3查看 269关注 0票数 0

场景:我们有大量的服务器环境信息(名称、IP、角色、防火墙端口等)。目前,它存储在SharePoint上的一个大的Excel工作簿中,例如,它允许将过去版本的数据与当前版本的数据进行并排比较。

我们计划将其移动到SQL Server 2008数据库中,以使工具/自动化更容易使用以及更好的报告。然而,正如您所期望的那样,给出的要求之一是管理员希望能够看到环境在过去某一时刻的外观。例如: sp_getEnvironmentsAsOf('PERF1','2009-11-14 00:00:00'),突然所有截至2009年11月14日的数据都被返回了。

我正在研究SQL Server 2008变更跟踪和变更数据捕获,但是所有的场景和示例都看不到与在表中查看数据的特定要求相关,因为它们在过去的某个任意点。

CT/CDC合适吗?除了把我自己的解决方案从俗气和希望中解放出来之外,还有什么其他选择?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-26 14:47:51

您应该设计您的模式来跟踪此更改,而不是依赖于dbms功能。类似于:

代码语言:javascript
运行
复制
Devices
  Id
  Description
  Serial number
  Some immutable properties

Properties
  Id
  Description

Device-Properties
  DeviceId
  PropertyId
  Value
  TimeStamp

您永远不会更新或删除设备属性,您只能添加具有新时间戳的行。

示例数据:

代码语言:javascript
运行
复制
Devices
1,Server A,1123123
2,Server B,1323454

Properties
1,IP Address
2,Location
3,Rol

Devices-Properties
1,1,192.168.0.10,2010-02-12
1,2,Rack D,2010-02-12
1,3,Proxy,2010-02-12
2,1,192.168.0.105,2010-02-12
2,2,Rack C,2010-02-12
2,3,Mail server,2010-02-12
1,1,192.168.0.11,2010-02-15

在示例数据中,在2010-02-15上将Server A IP地址从192.168.0.10更改为192.168.0.11

您可以构造视图或存储过程,以便根据需要联接和筛选数据。

票数 3
EN

Stack Overflow用户

发布于 2010-02-26 14:38:01

CDC是合适的,但您可能还想看看CodePlex上的AutoAudit

票数 1
EN

Stack Overflow用户

发布于 2010-02-26 14:34:58

我想到的是“快照”功能(快照显示了创建快照时数据库的状态)。然而,快照看起来像一个不同的数据库(因此您将查询类似于'MyDBSnapshot_DATE‘而不是'MyDB’的内容,并且它肯定会占用资源来跟踪更改。

另一个选择是..。自己的事情自己做。

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

https://stackoverflow.com/questions/2339851

复制
相关文章

相似问题

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