from 指定一個額外的from 子句。這是delete 命令在transact-sql 語言中的擴展,它允許同時刪除多個表中的數據。其所含的參數包括join_table、 join_type 等,與第10 章“數據查詢”中from 子句中所講的一致。
where 指定限制數據刪除的條件。如果不指定where 子句,就會刪除表中的所有數據。在 where 子句中指定兩種形式的刪除操作。一種是搜索刪,除即使用搜索條件來限定要刪除的數據行:另一種是定位刪除,即使用current of 子句來指定一個游標,刪除操作會在游標的當前位置產生。定位刪除比搜索刪除更精確。
global 說明要使用的游標是全局游標。如果不使用此選項,而又存在一個全局游標和一個局部游標同名的情況時,系統認為所選擇的游標是局部游標。
11.2.2 用delete 刪除數據 (1) 刪除一條記錄 例11-5 刪除編號為‘10031011 ’的員工記錄 use pangu delete from employee where emp_id = ’10031011’ (2) 刪除多條記錄 例11-6 刪除所有的部門信息記錄 use pangu delete from department_info /* 或使用 delete department_info */ 這個例子刪除了department_info 表中的所有數據使它成為空表 (3) 帶子查詢的刪除語句 子查詢同樣可以嵌套在delete 語句中,用以構造執行刪除操作的條件。 例11-7: 刪除后勤部所有員工的記錄。 use pangu delete from employee where dept_id = (select dept_id from department where d_name = ’后勤部’) 例11-8 刪除訂貨表前100 項記錄中所有產品編號為1003002 的產品 use pangu delete orders from (select top 100 * from orders) as orders_ top100 where orders.p_id = orders_ top100.p_id
(4) 刪除當前游標行數據 例11-9: 刪除游標dinfo_cursor 所指定的數據行。 delete from department_info where current of dinfo_cursor