在更新语句中使用交叉应用

Gui*_*rez 21 sql-server sql-server-2005 cross-apply sql-update

是否可以在SQL Server 2005中的更新语句的from部分中使用cross apply子句?

Gui*_*rez 30

你在哪里,艾伯特.我做了一些测试,发现确实可能.用法与SELECT声明中的用法相同.例如:

UPDATE some_table
SET some_row = A.another_row,
    some_row2 = A.another_row/2
FROM some_table st
  CROSS APPLY
    (SELECT TOP 1 another_row FROM another_table at WHERE at.shared_id=st.shared_id) AS A
WHERE ...
Run Code Online (Sandbox Code Playgroud)

  • 上面的查询给了我"错误的语法附近'"错误." 我花了一点时间才弄明白为什么所以我只想在这里添加解决方案以防万一有人遇到它.在交叉应用select语句后添加"as"似乎可以修复它. (3认同)