SQL-Server 2008:表插入和范围检查?

SQL-Server 2008:表插入和范围检查?

我正在使用表值构造函数一次插入一堆行。

但是如果我使用 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

我有什么选择(如果我不想或不能采用任何提出的解决方案)?扩大范围?降低门槛?

我可以通过编程修改我的请求来规避这个问题吗?

谢谢。

答案1

我有哪些选择(如果我不想或不能采用任何提出的解决方案)?扩大范围?

是的,如果您使用自动身份范围管理,那么请确保范围足够大,以容纳同步之间可能发生的插入次数。您可能需要增加范围。

相关内容