我是CDC的新手,所以我开始调查在SQL Server数据库中启用CDC的存储过程。检查sys.sp_cdc_enable_db
,我收到消息无法找到存储过程sys.sp_cdc_enable_db_internal
。我查看了我的数据库以及master和msdb数据库。请问有谁可以告诉我为什么SSMS找不到这个存储过程?
答案 0 :(得分:0)
此功能仅在SQL Server Enterprise和Developer版本中可用,从以下开始。它只能使用系统存储过程启用。 SQL Server Management Studio为各种与功能相关的操作提供了广泛的代码模板
要打开模板:
设置功能:
确保SQL Server代理正在运行。如果没有,请在对象资源管理器中右键单击它,然后单击开始
要在数据库上启用该功能,请在“配置”子文件夹中打开“为CDC模板启用数据库”,并将数据库名称替换为要跟踪的数据库的名称
USE AdventureWorks2012
GO
EXEC sys.sp_cdc_enable_db
GO
使用的登录必须具有SQL Server sysadmin权限,并且必须是数据库的db_owner。否则,您将收到以下错误
sg 22830,Level 16,State 1,Procedure sp_cdc_enable_db_internal,Line 193执行命令时发生故障 'SetCDCTracked(Value = 1)'。返回的错误是15517:'不能 作为数据库主体执行,因为主体“dbo”没有 存在,这种类型的委托人不能被冒充,或者你不能 得到许可。'使用操作和错误来确定原因 失败并重新提交请求。
Vist获取更多信息
https://solutioncenter.apexsql.com/enable-use-sql-server-change-data-capture/