У меня есть запрос, где мне нужно "пакет" вставлять строки в таблицу с первичным ключом без идентификатора.
--TableA
--PK int (Primary key, no-identity)
--CustNo int
INSERT INTO TableA (PK,CustNo)
SELECT (SELECT MAX(PK)+1 AS PK FROM TableA), CustNo
FROM Customers
(упрощенный пример - пожалуйста, не комментируйте возможные проблемы concurrency: -))
Проблема заключается в том, что она не увеличивает PK "для каждой" обработанной строки, и я получаю нарушение первичного ключа.
Я знаю, как это сделать с помощью цикла курсора /while, но я хотел бы избежать этого и решить его в виде набора, если это возможно?
(выполняется стандартный SQL Server 2008)