如何在存储过程中的动态sql查询中使用条件语句“if not exists”?

时间:2014-07-17 08:07:01

标签: sql sql-server

我有类似的东西。

declare @insertQuery nvarchar(max)

declare @ifQuery nvarchar(max)

SET @insertQuery='...'

SET @ifQuery='if not exists(select Id from '+@DbName+'.[dbo].[tbl_TestHere] where Id='+@id+')'

  BEGIN
    Exec sp_executesql @insertQuery
END

我需要执行动态查询@insertQuery如果"如果不存在(...)"返回true ..但我无法找到正确的解决方案。 提前致谢

1 个答案:

答案 0 :(得分:0)

只需将查询结合起来。

SET @FinalQuery NVARCHAR(MAX) = @ifQuery + @insertQuery;
EXEC (@FinalQuery);

当然,您需要检查合并查询是否有效。如果需要,请将 @insertQuery BEGINEND一起环绕。

如果以上组合无效,请检查How to get sp_executesql result into a variable?