T-SQL, Insérer dans avec MAX () + 1 dans la sous-requête n'incrémente pas, les alternatives?

J'ai une question où j'ai besoin de "lot" insérer des lignes dans une table avec une clé primaire sans identité.

--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

(exemple simplifié - merci de ne pas commenter sur d'éventuels problèmes de concurrence :-))

Le problème est qu'il n'a pas d'incrémenter le PK "pour chaque" traitées ligne, et je reçois une violation de clé primaire.

Je sais comment le faire avec un curseur/la boucle while, mais je voudrais l'éviter, et de le résoudre dans un ensemble à base de genre de manière, si c'est encore possible ?

(exécutant SQL Server 2008 Standard)

source d'informationauteur KorsG