Moo*_*ose 8 sql sql-server sql-server-2005
我需要更新符合条件的表中的前N行.
我知道我可以做一个更新前N ...但问题是N在@variable中.
更新顶部@N SET ...不起作用.
有没有办法做到这一点,我只是失踪?
这里没有特定的表定义,因为列是什么并不重要.如果我可以为一个列表执行此操作,我可以为我的表执行此操作.
Meh*_*ari 16
TOP当您想要使用变量时,需要使用parens after 子句:
UPDATE TOP(@N) ...
Run Code Online (Sandbox Code Playgroud)
Qua*_*noi 10
WITH q AS
(
SELECT TOP (@r) *
FROM mytable
ORDER BY
col1
)
UPDATE q
SET co12 = @value
Run Code Online (Sandbox Code Playgroud)
UPDATE TOP (@r)将工作但它将更新任何@r行没有特定的顺序.
从文档:
在引用的行
TOP与使用的表达INSERT,UPDATE或DELETE不按任何顺序排列.TOP n返回n随机行.
| 归档时间: |
|
| 查看次数: |
9951 次 |
| 最近记录: |