首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何区分工作流中SQL任务中的变量?

如何区分工作流中SQL任务中的变量?
EN

Stack Overflow用户
提问于 2019-10-21 13:25:38
回答 1查看 47关注 0票数 1

我有一个任务,它将在日志记录表中输入run-id、表名和行计数。我总共有6个表,预计在下一个sprint中还会有15个表。

SQL如下所示:

代码语言:javascript
复制
INSERT INTO logging_rowcount (RUN_ID, tablename, row_count) values (?, 'hardcoded_name1', ?);
INSERT INTO logging_rowcount (RUN_ID, tablename, row_count) values (?, 'hardcoded_name2', ?);

等,共插入6条语句。我相应地映射了参数,对第二个参数使用了变量"run-id“。任务本身可以工作,但是我担心,当我有21个表(和42个参数映射)时,这一点就变得不那么不可维护了。

虽然这个特殊的情况可以用另一个循环来解决,但一般来说:

有没有办法用“说”这个词来形容我的变量?例如:

代码语言:javascript
复制
INSERT INTO logging_rowcount (RUN_ID, tablename, row_count) values (@USER:run_id, @USER:tablename, @User:rowCount_table)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-21 13:28:42

可以在脚本任务中声明变量:

代码语言:javascript
复制
DECLARE @RunID INT = ?;

INSERT INTO .... VALUES (@RunID, ?, ...);
INSERT INTO .... VALUES (@RunID, ?, ...);

现在,您的第一个参数将是RunID,所有后续参数都是行计数。

如果需要,可以在脚本中为所有包变量定义SQL变量,这样映射就更容易理解(在映射和脚本中都是如此,因此很容易匹配)。

您还可以将查询作为表达式(通过具有存储查询的字符串变量),并且在表达式中可以使用参数/变量名称,但这很容易发生SQL注入。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58487321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档