J'ai besoin de créer une variable de table avec une graine d'identité qui commence par la valeur max d'un champ d'une autre table?
J'ai essayé ceci: p>
DECLARE @IdentitySeed int
SET @IdentitySeed = (SELECT MAX(HHRecId) +1 FROM xxx )
DECLARE @HH TABLE (
HHId INT IDENTITY(@IdentitySeed,1)
,AddressType CHAR(1)
,Address1 VARCHAR(100)
,City VARCHAR(50)
,State VARCHAR(2)
,Zip VARCHAR(5)
,LastName VARCHAR(50)
)
3 Réponses :
Je crois que vous pouvez faire cela, mais cela devra être fait dans Dynamic SQL - déclarer la table de table dans le SQL dynamique et l'utiliser là aussi! p>
Ce serait sûrement plus facile et entraînerait un code plus rapide si vous l'avez commencé à 1 et que vous aviez un champ d'identité secondaire calculé en tant que ID max (HHRecid) +. p>
Vous pouvez vérifier la valeur actuelle d'une colonne d'identité à l'aide de: et vous pouvez également modifier plus tard à l'aide de: p> Il fonctionne pour les tables temporaires locales et globales (c.-à-d. Désolé, il semble que Vous ne pouvez pas faire cela avec des variables de table ..... p> p> Créer une table #hh (... ) code> ou créer une table ## HH (....) code> - mais il ne semble pas fonctionner avec des variables de table: - ( p>
J'ai fini par faire ce qui suit: merci p> p> p>