Sql-Server

SQL-Server 2008:表格插入和範圍檢查?

  • March 20, 2012

我正在使用Table Value 建構子一次插入一堆行。

但是,如果我使用 sql 複製,我會在自動管理的 id 列上遇到對發布者的範圍檢查約束。

原因是在插入多個值期間 id 範圍似乎沒有增加,這意味著在實際範圍擴展可能發生(或 id 門檻值)之前達到了最大 id。

看起來這個問題的解決方案是執行合併代理或執行 sp_adjustpublisheridentityrange 儲存過程。

我在做類似的事情:

INSERT INTO dbo.MyProducts (Name, ListPrice)
VALUES ('Helmet', 25.50),
      ('Wheel', 30.00),
      ((SELECT Name FROM Production.Product WHERE ProductID = 720),
       (SELECT ListPrice FROM Production.Product WHERE ProductID = 720));
GO

我有什麼選擇(如果我不想或不能採用任何建議的解決方案)?擴大範圍?降低門檻?

我可以以程式方式修改我的請求以規避此問題嗎?

謝謝。

我有什麼選擇(如果我不想或不能採用任何建議的解決方案)?擴大範圍?

是的,如果您使用自動標識範圍管理,請確保範圍足夠大以容納同步之間可能發生的插入次數。您可能需要增加範圍。

引用自:https://serverfault.com/questions/371445