Ale*_*kin 6 sql-server cdc sql-server-2008
我在MS SQL 2008数据库上激活了变更数据捕获(CDC),并使用以下代码向数据捕获添加新表格:
EXEC sys.sp_cdc_enable_table
@source_schema ='ordering',
@source_name ='Fields',
@role_name = NULL,
@supports_net_changes = 0;
Run Code Online (Sandbox Code Playgroud)
但是,每当我尝试使用该sys.fn_cdc_get_min_lsn(@TableName)功能从跟踪表中选择更改时
SET @Begin_LSN = sys.fn_cdc_get_min_lsn('Fields')
Run Code Online (Sandbox Code Playgroud)
我总是得到零值.
我尝试使用以下拼写添加模式名称:
SET @Begin_LSN = sys.fn_cdc_get_min_lsn('ordering.Fields')
Run Code Online (Sandbox Code Playgroud)
但这没有帮助.
Ale*_*kin 15
我的错误是假设sys.fn_cdc_get_min_lsn()接受表名.我大多被MSDN文档中的示例误导,可能并没有检查参数的确切含义.
事实证明,sys.fn_cdc_get_min_lsn()接受捕获实例名称,而不是表名!
粗略地浏览一下我当前的捕获实例:
SELECT capture_instance FROM cdc.change_tables
Run Code Online (Sandbox Code Playgroud)
返回正确的参数名称:
ordering_Fields
Run Code Online (Sandbox Code Playgroud)
因此,应该使用下划线作为模式分隔符,而不是使用点符号,因为它在SQL Server中很常见.
| 归档时间: |
|
| 查看次数: |
6266 次 |
| 最近记录: |