sql-server-2008 – SQL Server设置变量,如果存在,则插入表中

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – SQL Server设置变量,如果存在,则插入表中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在寻找一种更有效的方法来完成这项任务.我需要设置一个等于ID的变量(如果存在),如果不存在,则将变量设置为插入的标识.我可以通过执行以下操作来实现此目的:
@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

但是,运行相同的查询两次似乎效率低下(检查是否存在以及是否设置了变量)

只是寻找更好的方法来完成这项任务的建议.

解决方法

试试:
DECLARE @VariableID [int]
SELECT @VariableID=VariableID FROM VariableTable WHERE VariableName = @VariableName

IF @VariableID IS NULL
BEGIN
    INSERT INTO VariableTable(VariableName) VALUES(@VariableName)
    SET @VariableID = SCOPE_IDENTITY();
END
原文链接:https://www.f2er.com/mssql/77655.html

猜你在找的MsSQL相关文章