SQL Définir l'IDENTITÉ des champs à l'Aide de la Variable
À tous, je veux commencer la numérotation d'un IDENTITY
champ en fonction du courant maximum obtenu à partir d'une autre table. J'ai donc essayé quelque chose comme ce qui suit
DECLARE @CurrentES INT;
SET @CurrentES = (SELECT MaxES
FROM [NDB]..[TmpMaxES]) + 1;
ALTER TABLE BA
ADD ES INT IDENTITY(@CurrentES, 1);
Mais ce ne sera pas accepter une variable comme valeur de départ dans l'IDENTITÉ. Comment puis-ce que j'ai besoin d'être réalisé?
Merci pour votre temps.
OriginalL'auteur MoonKnight | 2012-07-24
Vous devez vous connecter pour publier un commentaire.
Faire faire cela et d'autres non-variable a permis de tâches, vous pouvez utiliser la fonction EXEC, comme suit:
OriginalL'auteur Joon
Vous pouvez utiliser le
dbcc checkident
fonctionnalité de SQL Server...Une chose à noter est que la valeur dans le 3e paramètre (dans ce cas, le
@MAXID
variable) désigne le actuel valeur d'identité - en d'autres termes la dernière valeur d'identité qui a été généré sur la table.Ainsi, par exemple, si vous voulez la prochaine valeur qui est créée automatiquement à
100
, puis définissez le 3e paramètre de99
.OriginalL'auteur freefaller
Essayer quelque chose comme cela..
OriginalL'auteur Shailesh
OU (si la colonne id est de type int)
scope_identity()
pas@@IDENTITY
, le dernier n'est pas portée à votre script peut donc donner des résultats inattendusOriginalL'auteur d689p