Я использую Конструктор значений таблицы для вставки нескольких строк за раз.
Однако, если я использую репликацию sql, я сталкиваюсь с ограничением проверки диапазона на издателе в моем столбце идентификатора, управляемом автоматически.
Причина в том, что диапазон идентификаторов не увеличивается во время вставки нескольких значений, а это означает, что максимальный идентификатор достигается до того, как может произойти фактическое расширение диапазона (или пороговое значение идентификатора).
Это выглядит так проблема для которого решение либо запускает агент слияния, либо запускает хранимую процедуру 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
Какие у меня есть варианты (если я не хочу или не могу принять какое-либо из предложенных решений)? Расширить ассортимент? Понизить порог?
Могу ли я программно изменить свой запрос, чтобы обойти эту проблему?
Спасибо.
Какие у меня есть варианты (если я не хочу или не могу принять какое-либо из предложенных решений)? Расширить ассортимент?
Да, если вы используете автоматическое управление диапазоном идентификаторов, убедитесь, что диапазоны достаточно велики, чтобы учесть количество вставок, которые могут произойти между синхронизацией. Вероятно, вам потребуется увеличить диапазон.