SQL Server Définir la variable si il existe d'autre insérer dans la table

Je suis à la recherche d'un moyen plus efficace de mener à bien cette tâche. J'ai besoin de définir une variable égal à un ID si elle existe, et si l'insérez pas et puis définissez la variable de l'identité insérée. Je peux accomplir cela en procédant de la manière suivante:

@VariableName --sent through to stored procedure

DECLARE @VariableID [int]

IF EXISTS(SELECT VariableID FROM VariableTable WHERE VariableName = @VariableName)
    SET @VariableID = (SELECT VariableID FROM VariableTable WHERE VariableName = @VariableName)
ELSE 
    INSERT INTO VariableTable(VariableName) VALUES(@VariableName)
    SET @VariableID = SCOPE_IDENTITY();
END

Cependant, il semble inefficace pour exécuter la même requête à deux reprises (vérifiez s'il existe et si elle ne définissez la variable)

Juste à la recherche de suggestions sur la meilleure façon d'accomplir cette tâche.

OriginalL'auteur jon3laze | 2012-01-31