Sql-Server

數據庫複製 SQL Server

  • August 7, 2018

我們必須使用 SQL Server 進行數據庫複製;這兩個數據庫位於不同的伺服器上。

我們實現了複製,但我們的場景是當直播停止時,所以我們使用複制伺服器作為我們的生產伺服器。

這是問題發生的地方:當我們從應用程序在複製伺服器上插入任何內容時,由於違反主鍵約束而失敗。

是的,它違反了從 1 開始的複制伺服器主鍵上的 b/c

如何克服這個問題?還是將複製伺服器轉換為生產伺服器的正確方法?

如果對齊標識列,請在源上執行:

SELECT 
       IDENT_SEED(TABLE_SCHEMA+'.'+TABLE_NAME) AS Seed,
       IDENT_INCR(TABLE_SCHEMA+'.'+TABLE_NAME) AS Increment,
       IDENT_CURRENT(TABLE_SCHEMA+'.'+TABLE_NAME) AS Current_Identity,
       TABLE_SCHEMA+'.'+TABLE_NAME as table_name,
       'DBCC CHECKIDENT('''+TABLE_SCHEMA+'.'+TABLE_NAME+''', RESEED,'+CAST(IDENT_CURRENT(TABLE_SCHEMA+'.'+TABLE_NAME) +1  AS VARCHAR(10))+')' as Command
   FROM
       INFORMATION_SCHEMA.TABLES
   WHERE
       OBJECTPROPERTY(OBJECT_ID(TABLE_SCHEMA+'.'+TABLE_NAME),'TableHasIdentity') = 1
   AND TABLE_TYPE = 'BASE TABLE'
   AND TABLE_NAME not like 'Mspeer%'
   AND TABLE_NAME not in ('sysarticles','syspublications')
   ORDER BY TABLE_SCHEMA, TABLE_NAME

在副本上執行的程式碼在列中

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