SQLServer對錶進行CDC捕捉時報錯

ywxj_001發表於2022-05-15
SQLServer對錶進行CDC捕捉時報錯:
訊息 22832,級別 16,狀態 1,過程 sp_cdc_enable_table_internal,第 623 行
無法更新後設資料來指示已對錶 [dbo].[Big] 啟用了變更資料捕獲。執行命令 '[sys].[sp_cdc_add_job] @job_type = N'capture'' 時失敗。返回的錯誤為 22836: '無法更新資料庫 benlaiSales 的後設資料來指示已新增某變更資料捕獲作業。執行命令 'sp_add_jobstep_internal' 時失敗。返回的錯誤為 14234: '指定的 '@server' 無效(有效值由 sp_helpserver 返回)。'。請使用此操作和錯誤來確定失敗的原因並重新提交請求。'。請使用此操作和錯誤來確定失敗的原因並重新提交請求
問題原因:
原因:SqlServer安裝後修改了主機名,導致以下兩個語句結果不一致
SELECT * FROM master.dbo.sysservers
SELECT SERVERPROPERTY('ServerName')
解決辦法:
執行下面SQL:
IF serverproperty('servername')<>@@servername    
  BEGIN  
  DECLARE  @server SYSNAME  
  SET   @server=@@servername      
  EXEC  sp_dropserver @server=@server    
  SET   @server=cast(serverproperty('servername') AS SYSNAME)   
  EXEC  sp_addserver @server=@server,@local='LOCAL'     
  END  
  ELSE  
    PRINT '例項名與主機名一致,無需修改!' 
再開啟表CDC正常:
EXECUTE sys.sp_cdc_enable_table
    @source_schema = N'dbo'
  , @source_name = N'Big_Sale'
  , @role_name = N'cdc_Admin'--可以自動建立
  , @capture_instance=DEFAULT
GO


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22996654/viewspace-2894221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章