SQL错误360:无法修改子查询中使用的表或视图
我弄错了 无法修改子查询中使用的表或视图 执行此查询时 此处SQL错误360:无法修改子查询中使用的表或视图,sql,Sql,我弄错了 无法修改子查询中使用的表或视图 执行此查询时 此处my\u table\u视图中的raw\u str引用了my\u table中的raw\u str 请建议如何更新“标志” update my_table set flag = 'X' where raw_str = ( select raw_str from my_table_view where a_num in (
my\u table\u视图中的raw\u str
引用了my\u table
中的raw\u str
请建议如何更新“标志”
update my_table
set flag = 'X'
where raw_str = (
select raw_str from my_table_view
where a_num in
(
select num_id from num_table
where state not in (0, 1, 7, 99, 10, 11, 20, 21)
)
)
提前感谢。正确答案取决于dbms,使用MS-SQL 2000 2005 2008和sybase,您可以使用强大的
从更新,使用特殊子句和(NOLOCK)以强制重用派生表“我的表视图”
对于其他dbms(ORACLE Informix),您必须将子查询加载到temp
哪个是你的平台
再见
迭戈
Sql server 2005 2008更新自:
UPDATE B1
SET
B1.PARAMETER_DS = 'UPDATED'
FROM
B_PARAMETERS B1 WITH(ROWLOCK)
INNER JOIN
(SELECT B2.* FROM
B_PARAMETERS B2 WITH(NOLOCK)
WHERE FAMILY_ID = 5 ) B2
ON
B1.PARAMETER_PK = B2.PARAMETER_PK
WHERE
B2.PARAMETER_VL = 'X';
对于Oracle:创建全局临时表
对于Informix创建临时表:什么样的SQL方言?对于MS SQL Server,应允许此类操作;例如,对于MS Access来说,不可能是最新版本的Informix IDS支持行为更新。在任何情况下,温度表中的负载也适用于旧标准发动机。