如何解决SQL错误360:无法修改子查询中使用的表或视图
| 我得到了错误 无法修改子查询中使用的表或视图 在执行此查询时。 在此,“ 1”中的“ 0”引用了“ 3”中的“ 0”。 请提出如何更新\'flag \'的建议。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可能会使用功能强大的
带有特殊子句WITH(NOLOCK)的UPDATE FROM,以强制重用派生表\“ my_table_view \”。
对于其他dbms(ORACLE Informix),必须将子查询加载到临时数据库
您的平台是哪个?
再见
地亚哥
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:创建全局临时表如何在Oracle中创建临时表
对于Informix创建临时表:插入临时值(选择...。按ID排序)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。