sql - 将 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 Status=2 group by 1 asc" 。我需要的是从该脚本中获取表数据
解决方案
只需使用
执行 sp_executesql @SQLScript
执行查询
推荐阅读
- jena - 为什么 Jena 4 中没有 Jena-iri 模块 javadoc?
- arrays - 基于复选框和随机输出过滤长字符串数组
- c# - 使用 DataTable 未正确显示 DataGrid 枚举
- regex - 为什么要在开头放一个lookahead,或者在结尾放一个lookbehind?
- c++ - 如何将概念引用中定义的内容传递给模板函数?
- cron - Hangfire 重复作业的 Cron 表达式不正确
- react-native - Dependabot 未能更新您的依赖项,因为在 /package.json 中解析 package.json 时出错
- python - 使用 pyodbc 将文件名设置为变量,然后在数据存储程序中将程序作为可执行文件运行,而不是通过 Python
- bash - 如何生成带有数字的图像?
- node.js - 有没有办法限制 expressJS 应用程序中同时请求(连接)的数量?