用这个:
;
WITH cte
AS ( SELECT *
FROM sys_barcode_1d_y
UNION ALL
SELECT *
FROM sys_barcode_1d_y_bak
UNION ALL
SELECT *
FROM FG_hi_cust_In
WHERE hi_no LIKE 'ESC%'
)
DELETE FROM cte
WHERE packageno = 'xxx'
;
WITH cte
AS ( SELECT *
FROM sys_barcode_1d_y
UNION ALL
SELECT *
FROM sys_barcode_1d_y_bak
UNION ALL
SELECT *
FROM FG_hi_cust_In
WHERE hi_no LIKE 'ESC%'
)
DELETE FROM cte
WHERE packageno = 'xxx'
解决方案 »
- 如何读取sql server2005数据库作业执行状态
- 数据库里能否存储大量的文件?
- 有关视图中的内部联接和外部联接的探究!!
- 高手请进,如何用一条sql语句遍历一个树型结构
- 为什么我装上SQLserver就不能上网了呢
- 想取出满足不同ID的AA列中最大值的各个记录,怎么写
- 请问在MSSQL中多个路径的分隔符是什么
- 关于在SQL SERVER中的一个"很难"的查询问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 如何在delphi中显示和编辑sql server中超过256字节的字段
- 那个语名可以修改SQL SERVER表里的字段用ALTER TABLE table MODIFY username char(8)好像不可以
- 插入值到数据库表中,(在线等)急
- sql 时间处理
View 'cte' is not updatable because the definition contains a UNION operator.
select * into T
from (
SELECT *
FROM sys_barcode_1d_y
UNION ALL
SELECT *
FROM sys_barcode_1d_y_bak
UNION ALL
SELECT *
FROM FG_hi_cust_In
WHERE hi_no LIKE 'ESC%')a
delete from a where xxxxx
2楼的方法使用CTE也还是说“视图 'cte' 不可更新,因为其定义中包含 UNION 运算符。”
delete FROM sys_barcode_1d_y_bak where packageno='xxx'
delete FROM FG_hi_cust_In WHERE hi_no LIKE 'ESC%' and packageno='xxx'