- 本次案例介紹
- 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 ...