將在給定的數據庫內運行 sp_replcmds 的第一個客戶端視為日志讀取器。返回被標記為復制的事務的命令。此存儲過程在發(fā)布服務器的發(fā)布數據庫上執(zhí)行。
sp_replcmds [ @maxtrans = ] maxtrans
[@maxtrans =] maxtrans
是返回其信息的事務數。maxtrans 的數據類型為 int,默認值為 1,表示指定下一個等待分發(fā)的事務。
sp_replcmds 由日志讀取器進程使用。此過程返回有關其執(zhí)行時所在的發(fā)布數據庫的信息。它使您得以查看當前沒有隨命令分發(fā)的事務(那些保留在事務日志中的、沒有被發(fā)送到分發(fā)服務器的事務),并且返回項目 ID、partial_command(真或假)、命令、頁、行和時間截。
sp_replcmds 用于事務復制。
此過程可以為所有者限定的表或未限定的表名(默認值)生成命令。添加限定的表名允許將數據從一個數據庫內的特定用戶所擁有的表復制到這個用戶在另一個數據庫內所擁有的表中。
說明 由于源數據庫內的表名是由所有者名稱限定的,所以目標數據庫內的表所有者必須具有相同的所有者名稱。
嘗試在同一數據庫內運行 sp_replcmds 的客戶端會收到 18752 號錯誤,直到第一個客戶端斷開連接為止。當第一個客戶端斷開連接后,另一個客戶端可以運行 sp_replcmds,并成為新的日志讀取器。
說明 應只在解決與復制有關的問題時才運行 sp_replcmds 過程。
如果因為在同一個事務中沒有檢索到文本指針而導致 sp_replcmds 無法復制文本命令,則將在 Microsoft® SQL Server™ 錯誤日志和 Microsoft Windows NT® 應用程序日志中添加 18759 號警告消息。
只有 sysadmin 固定服務器角色成員或 db_owner 固定數據庫角色成員才能執(zhí)行 sp_replcmds。
相關文章