首页 > 解决方案 > 将 sql 脚本赋值给变量

问题描述

这是我第一次这样做,原因是我想避免在使用条件“if”时输入相同的 sql 脚本代码。我的第一个选择是创建一个变量并将“select”语句分配给它,现在取决于另一个变量值,我将只更改“where”条件,而不是获取我在常规 sql 脚本上获得的所有列和行,我只得到一个单元格,其中的文本分配给变量。下面是我的代码:

DECLARE @SQLScript varchar(MAX)='' ,
        @Subordinate int = 1;

SELECT @SQLScript = N'SELECT * FROM Account
    WHERE AccountID = 345015' 
IF @Subordinate = 1 
BEGIN
    SELECT @SQLScript =@SQLScript +' AND Status=2 ORDER BY 1 asc' 
END 
ELSE 
BEGIN
    SELECT @SQLScript =@SQLScript +' AND Status=1 ORDER BY 2 asc'
END
SELECT @SQLScript

执行上述脚本后,我得到的是 1 个单元格,显示以下文本 "SELECT * Account where AccountID = 345015 AND St​​atus=2 group by 1 asc" 。我需要的是从该脚本中获取表数据

标签: sql

解决方案


只需使用

执行 sp_executesql @SQLScript

执行查询


推荐阅读