Sql-Server

如何從 cdc 表中讀取數據?

  • April 4, 2022

我想嘗試一下change data capturesql server的功能,但我無法讓它工作

我做了什麼

-- enable cdc
EXEC sys.sp_cdc_enable_db

-- enable it on a table, for testing
EXEC sys.sp_cdc_enable_table  
@source_schema = N'dbo',  
@source_name   = N'tblUser',  
@role_name     = NULL,  
@supports_net_changes = 1

-- check if it got enabled (yes it did)
select t.name, t.is_tracked_by_cdc,
from sys.tables t where name = 'tblUser'

所以,現在我只是在該表的一行中更改了一些值,接下來我想看看它的外觀。

所以我注意到cdc在一些表中創建了一個模式system tables,所以我想讓我們看看表 cdc.dbo_tblUser_CT 中有什麼

但後來我明白了

在此處輸入圖像描述

所以現在我被卡住了。

我必須做什麼才能看到更改的數據?

Microsoft SQL Server 2019 (RTM-CU15) (KB5008996) - 15.0.4198.2 (X64)

2022 年 1 月 12 日 22:30:08 版權所有 (C) 2019 Microsoft Corporation Standard Edition (64-bit) o​​n Windows Server 2019 Standard 10.0 (Build 17763) :)(管理程序)

兼容級別為 150

我同意 Learning_DBAdmin,您應該始終使用最新系列的 SSMS。這很可能是你的問題。SSMS 的 17 系列在這一點上已經很老了。

否則,您可以嘗試手動寫出SELECT TOP 1000 * FROM cdc.dbo_tblUser_CTSSMS 將為您生成的腳本。(替換*為實際的列名。)

我知道您提到您仍然使用 17 系列的 SSMS 進行調試,但是您使用該版本的時間越長,您會發現自己遇到的問題越多。相反,Visual Studio 現在可以調試 SQL。請參閱此StackOverflow 答案以了解如何設置它。

引用自:https://dba.stackexchange.com/questions/310506