我有一个选择语句,我想要转换为名称为Variable[N]
的表中所有列的更新语句。循环更新多列?
例如,我想要做的这些事情:
- 我希望能够到SQL转换成如下的更新语句。
- 我有
n
列名为variable[N]
。下面的示例只更新列variable63
,但我想要动态运行名称为variable1
到variableN
的所有列上的更新,而不必知道我有多少个variable[N]
列。另外,在下面的例子中,我得到更新结果到NewCol
。如果可能,我实际上想要更新相应的变量列,variable63
在我的示例中。
我想有通过variableN
遍历variable1
列的包装,并在所有这些列执行相同的各个更新操作:
SELECT
projectid
,documentid
,revisionno
,configurationid
,variable63
,ISNULL(Variable63,
(SELECT TOP 1
variable63
FROM table1
WHERE
documentid = t.documentid
and projectid=t.projectid
and configurationid=t.configurationid
and cast(revisionno as int) < cast(t.revisionno as int)
AND Variable63 is NOT NULL
ORDER BY
projectid desc
,documentid desc
,revisionno desc
,configurationid desc
)) as NewCol
FROM table1 t;
您将需要使用动态SQL。我希望你不要期望它快。 – Hogan 2012-07-26 20:12:15
至少告诉我们变量1和变量2的更新语句是什么样子......很难确切知道你要在这里做什么。 – Hogan 2012-07-26 20:13:21
你使用什么数据库? – 2012-07-26 20:25:37