我有一个任务,它将在日志记录表中输入run-id、表名和行计数。我总共有6个表,预计在下一个sprint中还会有15个表。
SQL如下所示:
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个参数映射)时,这一点就变得不那么不可维护了。
虽然这个特殊的情况可以用另一个循环来解决,但一般来说:
有没有办法用“说”这个词来形容我的变量?例如:
INSERT INTO logging_rowcount (RUN_ID, tablename, row_count) values (@USER:run_id, @USER:tablename, @User:rowCount_table)发布于 2019-10-21 13:28:42
可以在脚本任务中声明变量:
DECLARE @RunID INT = ?;
INSERT INTO .... VALUES (@RunID, ?, ...);
INSERT INTO .... VALUES (@RunID, ?, ...);现在,您的第一个参数将是RunID,所有后续参数都是行计数。
如果需要,可以在脚本中为所有包变量定义SQL变量,这样映射就更容易理解(在映射和脚本中都是如此,因此很容易匹配)。
您还可以将查询作为表达式(通过具有存储查询的字符串变量),并且在表达式中可以使用参数/变量名称,但这很容易发生SQL注入。
https://stackoverflow.com/questions/58487321
复制相似问题