微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql-server – 标量函数fn_cdc_get_min_lsn()不断返回’0x00000000000000000000’作为有效的表名?

我在MS sql 2008数据库上激活了变更数据捕获(CDC),并使用以下代码向数据捕获添加新表格:
EXEC sys.sp_cdc_enable_table
@source_schema ='ordering',@source_name ='Fields',@role_name = NULL,@supports_net_changes = 0;

但是,每当我尝试使用sys.fn_cdc_get_min_lsn(@TableName)函数从跟踪表中选择更改时

SET @Begin_LSN = sys.fn_cdc_get_min_lsn('Fields')

我总是得到零值.

我尝试使用以下拼写添加模式名称

SET @Begin_LSN = sys.fn_cdc_get_min_lsn('ordering.Fields')

但这没有帮助.

解决方法

我的错误是假设sys.fn_cdc_get_min_lsn()接受表名.我大多被MSDN文档中的示例误导,可能并没有检查参数的确切含义.

事实证明,sys.fn_cdc_get_min_lsn()接受捕获实例名称,而不是表名!

粗略地浏览一下我当前的捕获实例:

SELECT capture_instance FROM cdc.change_tables

返回正确的参数名称

ordering_Fields

因此,应该使用下划线作为模式分隔符,而不是使用点符号,因为它在sql Server中很常见.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐