表插入和范围检查?

时间:2012-03-15 09:20:46

标签: sql-server sql-server-2008 tsql

我正在使用Table Value constructor一次插入一堆行。

但是,如果我正在使用sql复制,我会在我自动管理的id列上的发布者上遇到范围检查约束。

原因是在插入多个值期间似乎没有增加id范围,这意味着在实际范围扩展(或id阈值)之前达到最大id。

看起来像problem解决方案正在运行合并代理程序或运行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 个答案:

答案 0 :(得分:0)

唯一的解决方案似乎是运行sp_adjustpublisheridentityrange存储过程。