找不到存储过程" sys.sp_cdc_enable_db_internal"

时间:2017-10-24 15:41:45

标签: sql sql-server

我是CDC的新手,所以我开始调查在SQL Server数据库中启用CDC的存储过程。检查sys.sp_cdc_enable_db,我收到消息无法找到存储过程sys.sp_cdc_enable_db_internal。我查看了我的数据库以及master和msdb数据库。请问有谁可以告诉我为什么SSMS找不到这个存储过程?

1 个答案:

答案 0 :(得分:0)

此功能仅在SQL Server Enterprise和Developer版本中可用,从以下开始。它只能使用系统存储过程启用。 SQL Server Management Studio为各种与功能相关的操作提供了广泛的代码模板

要打开模板:

  1. 在SQL Server Management Studio菜单中,打开“查看”
  2. 点击模板
  3. 打开SQL Server模板
  4. 打开“更改数据捕获”子文件夹。可以使用用于管理,配置,枚举和元数据查询的T-SQL模板 enter image description here
  5. 设置功能:

    确保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/