Replication

將 IDENTITY 列從 Sybase ASE 15.5 複製到 Sybase ASE 15.5 時出現問題

  • May 10, 2021

我正在嘗試Sybase ASE 15.5通過Sybase ASE 15.5複製定義和在Replication Server(REP) Version 15.7.1. 我發現有一個表,其中一個列定義為IDENTITY. 為該表創建複製定義和訂閱後,我在複製伺服器中收到以下錯誤消息:

來自伺服器的消息:Message: 584, State 1, Severity 16 -- 'Explicit value specified for identity field in table 'customers' when 'SET IDENTITY_INSERT' is OFF'.

我試圖SET IDENTITY_INSERT customers ON在我的主數據庫和複製數據庫上執行,但沒有運氣。

感謝您是否可以提供幫助。謝謝!

假設您的主/複製表是這樣創建的:

create table mytable
(id     int           identity
,name   varchar(100)
,dob    date
... snip ...

假設您想將標識值從主表複製到復製表,您需要告訴 SRS 該id列是一identity列,您執行此操作的方法是在 repdef 中將該id列指定為 an identity,如下所示:

create replication definition mytable_repdef
with primary at ...
with all tables named mytable
(id     identity             <<<=== use 'identity' instead of the actual datatype
,name   varchar(100)
,dob    datetime
... snip ...

通過將id列指定為identityrepdef 中的列,SRS 現在應該將所有 INSERT(發送到複製數據庫)包含在set identity_insert on/off包裝器中,​​並且更新應該包裝在set identity_update on/off包裝器中。

引用自:https://dba.stackexchange.com/questions/197645