Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 数据仓库:计算sql server表中更改了哪些行以方便数据仓库_Sql Server_Tsql_Row_Data Warehouse - Fatal编程技术网

Sql server 数据仓库:计算sql server表中更改了哪些行以方便数据仓库

Sql server 数据仓库:计算sql server表中更改了哪些行以方便数据仓库,sql-server,tsql,row,data-warehouse,Sql Server,Tsql,Row,Data Warehouse,业务场景,寻求一种编程方法: 每天晚上,我都要从生产数据库更新数据仓库数据库中的表ABC。这个表有数百万行,所以我想高效地完成这项工作 该表没有任何类型的时间戳标记(LastUpdated\Time) 该数据库是由我们运行其软件的供应商创建的,他们使我们能够查看数据。我们可能没有太多的筹码来请求新的列来容纳诸如LastUpdate日期时间戳之类的信息 在没有这些信息的情况下,是否有一种方法能够识别那些已更改或添加的行 例如,是否存在与表记录关联的可查询物理行号这样的东西,可以帮助我们找到解决方案

业务场景,寻求一种编程方法:

每天晚上,我都要从生产数据库更新数据仓库数据库中的表ABC。这个表有数百万行,所以我想高效地完成这项工作

该表没有任何类型的时间戳标记(LastUpdated\Time)

该数据库是由我们运行其软件的供应商创建的,他们使我们能够查看数据。我们可能没有太多的筹码来请求新的列来容纳诸如LastUpdate日期时间戳之类的信息

在没有这些信息的情况下,是否有一种方法能够识别那些已更改或添加的行

例如,是否存在与表记录关联的可查询物理行号这样的东西,可以帮助我们找到解决方案?如果可以查询,或者按顺序进行,那么可能有一种方法可以获取插入的行

更新的行,我不太确定

在这一点上,我只是想看看是否有一个有效的解决方案

理想情况下,解决方案将面向一个存储过程,我们可以每天晚上都运行这个存储过程

多谢各位

我看到了这一评论,但我不确定该解决方案是否有效:

请检查合并操作符,您可以创建一个SQL Server作业,该作业可以执行合并脚本来检查和更新更改(如果有)。

您的第一个选择是尝试实施CDC(更改数据捕获),它将使用SQL Server引擎的功能来跟踪此类数据。请让我们知道CDC是否可用。Piotr:不熟悉,但如果您知道的话:变更数据事务信息是否总是存在,您必须点击它,或者必须启用它?如果它总是在那里,我认为供应商可以让我们访问数据表。源数据不由我们管理。谢谢您需要在源数据库上启用它,请阅读: