我正在使用表值构造函数一次插入一堆行。
但是如果我使用 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
我有哪些选择(如果我不想或不能采用任何提出的解决方案)?扩大范围?
是的,如果您使用自动身份范围管理,那么请确保范围足够大,以容纳同步之间可能发生的插入次数。您可能需要增加范围。