SQL派生表別名的異常處理

2021-09-12 18:31:08 字數 693 閱讀 7076

- 本次案例介紹

- sql實際**

一:實際案例解讀

二:sql**

錯誤示例:

delete

from person

where id notin(

select

min(id)

from person group

by email)

;

上面sql**會發生異常,出現you can't specify target table 'person' for update in from clause這樣的異常提示,因為在同一張表中不能先select出某些數值,然後再update更新它;解決這種問題只需多巢狀一層子查詢即可。

正確示例:

delete

from person

where id notin(

select

*from

(select

min(id)

from person group

by email) p)

;

其中需要注意的事:必須給最裡面的select語句重新命名為p表,這樣就會避免上面的異常情況發生。

SQL異常處理

異常處理 異常處理,也叫作錯誤處理,通常是把異常記錄在日誌中 在儲存過程中加上異常處理後,讓異常原因記錄在日誌表中。注意 異常處理有自己的begin.end.意思就是異常處理的begin.end.和儲存過程的begin.end.不共用。語法 begin 執行的語句 exception 一旦出現異常 ...

動態sql語句 異常處理

execute immediate 實現ddl declare v ddl varchar2 200 begin v ddl create table mytable as select ename,sal from emp execute immediate v ddl dbms output.p...

SQL2005以上版本派生表更新

sql2005以上版本可用 usetempdb go select top 10 id,row cast null asint into t from sysobjects go updateta setrow row2 from select row2 select count 1 from t ...