Sql server 什么';在SQL Server 2008中,允许查询/视图查看过去基于日期时间戳的表的外观的最佳方法是什么?

Sql server 什么';在SQL Server 2008中,允许查询/视图查看过去基于日期时间戳的表的外观的最佳方法是什么?,sql-server,database-design,sql-server-2008,Sql Server,Database Design,Sql Server 2008,场景:我们有大量服务器环境信息(名称、IP、角色、防火墙端口等)。目前,它存储在SharePoint上的一个大型Excel工作簿中,例如,它允许对数据的过去版本与当前版本进行并排比较 我们计划将其移动到SQL Server 2008数据库中,以使工具/自动化更容易使用,并实现更好的报告。然而,正如您所期望的,给出的要求之一是管理员希望能够看到环境在过去的某个时刻是如何的。一些神奇的东西,比如:sp_getEnvironmentsAsOf('PERF1','2009-11-14 00:00:00'

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

我们计划将其移动到SQL Server 2008数据库中,以使工具/自动化更容易使用,并实现更好的报告。然而,正如您所期望的,给出的要求之一是管理员希望能够看到环境在过去的某个时刻是如何的。一些神奇的东西,比如:sp_getEnvironmentsAsOf('PERF1','2009-11-14 00:00:00'),然后突然返回截至2009年11月14日的所有当前数据

我正在研究SQL Server 2008更改跟踪和更改数据捕获,但所有的场景和示例都与在表中查看数据的特定要求无关,因为它们在过去的任意时刻都是如此


CT/CDC是否合适?除了推出我自己的解决方案,我还有哪些选择?

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


另一个选择是…自己动手。

我想到的是“快照”功能(快照显示创建快照时数据库的状态)。但是,快照看起来像是一个不同的数据库(因此您将查询类似“MyDBSnapshot\u DATE”的内容,而不是“MyDB”,它肯定需要资源[跟踪更改]


另一个选择是…自己动手。

CDC是合适的,但您可能也希望查看CodePlex。

CDC是合适的,但您可能也希望查看CodePlex。

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

Devices
  Id
  Description
  Serial number
  Some immutable properties

Properties
  Id
  Description

Device-Properties
  DeviceId
  PropertyId
  Value
  TimeStamp
您从不更新或删除设备属性,只添加带有新时间戳的行

样本数据:

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的
A服务器
IP地址从
192.168.0.10
更改为
192.168.0.11


您可以根据需要构造视图或存储过程来连接和过滤数据。

您应该设计模式来跟踪这些更改,而不是依赖dbms功能。例如:

Devices
  Id
  Description
  Serial number
  Some immutable properties

Properties
  Id
  Description

Device-Properties
  DeviceId
  PropertyId
  Value
  TimeStamp
您从不更新或删除设备属性,只添加带有新时间戳的行

样本数据:

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的
A服务器
IP地址从
192.168.0.10
更改为
192.168.0.11

您可以根据需要构造视图或存储过程来连接和过滤数据