当前位置:编程学习 > 网站相关 >>

delete 语句特殊用法

A. 不带参数使用 DELETE
下例从 authors表中删除所有行。

USE pubs
DELETE authors
B. 在行集上使用 DELETE
因为 au_lname 可能不是唯一的,下例删除其中的 au_lname 是 McBadden 的所有行。

USE pubs
DELETE FROM authors
WHERE au_lname = 'McBadden'
C. 在游标的当前行上使用 DELETE
下例显示在名为 complex_join_cursor 的游标上所做的删除。它只影响当前从游标提取的单行。

USE pubs
DELETE FROM authors
WHERE CURRENT OF complex_join_cursor
D. 基于子查询使用 DELETE 或使用 Transact-SQL 扩展
下例显示基于联接或相关子查询从基表中删除记录的 Transact-SQL 扩展。第一个 DELETE 显示与 SQL-92 兼容的子查询解决方法,第二个 DELETE 显示 Transact-SQL 扩展。两个查询都基于存储在 titles 表中的标题从 titleauthors 表中删除行。

/* SQL-92-Standard subquery */
USE pubs
DELETE FROM titleauthor
WHERE title_id IN
   (SELECT title_id
   FROM titles
   WHERE title LIKE '%computers%')

/* Transact-SQL extension */
USE pubs
DELETE titleauthor
FROM titleauthor INNER JOIN titles
   ON titleauthor.title_id = titles.title_id
WHERE titles.title LIKE '%computers%'
E. 在 DELETE 和 SELECT 中使用 TOP 子句
由于可以在 DELETE 语句中指定 SELECT 语句,因此还可以在 SELECT 语句中使用 TOP 子句。例如,下例从 authors 表中删除前 10 个作者。

DELETE authors
FROM (SELECT TOP 10 * FROM authors) AS t1
WHERE authors.au_id = t1.au_id

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,