SQL Server Установить переменную, если существует, еще вставить в таблицу

Я ищу более эффективный способ выполнить эту задачу. Мне нужно установить переменную, равную идентификатору, если он существует, а если нет, вставить его, а затем установить переменную для вставленного идентификатора. Я могу добиться этого, выполнив следующие действия:

@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

Однако кажется неэффективным выполнять один и тот же запрос дважды (проверьте, существует ли и устанавливает ли переменная)

Просто ищу предложения по лучшему способу выполнения этой задачи.

7
задан jon3laze 31 January 2012 в 18:53
поделиться