2012-05-08 2 views
0

je une variable,SQL INSERT: incrémenter une valeur int avant insertion

DECLARE @CN int = (SELECT [CONTROL_NUMBER] FROM myTable) 

Je dois faire une déclaration d'insertion où la valeur de cette variable est incrémenté au cours de l'exécution.

Ainsi,

INSERT INTO myTable2 (ControlNumber) 
SELECT CNC+(@CN increment the value here) FROM aTable 

Ainsi, les valeurs insérées seront comme,

aa1234 
ab1235 
cd1236... 

etc.

Certainement @CN est un entier, donc je compte de l'évolution à la chaîne avant insérer la valeur.

Appréciez l'aide.

Merci!

+0

Idéalement, il suffit de laisser la gestion des valeurs de la séquence jusqu'à la base de données. Pourquoi cette approche? –

+0

^Ce qu'il a dit. Utiliser une identité? – zimdanen

+0

Ce n'est pas une colonne d'identité. – OBL

Répondre

1
SET @CN = @CN + 1 
INSERT INTO myTable2 (ControlNumber) 
SELECT CNC + Cast(@CN as varchar) FROM aTable 
+0

Même si OP utilise probablement une colonne Identity et une colonne VARCHAR/CHAR séparée, cela répond techniquement à sa question. +1 @OBL, s'il vous plaît repenser votre conception ici. –