Sql Server系列:Delete語句

libingql發表於2014-11-24

  資料的刪除將刪除表的部分或全部記錄,刪除時可以指定刪除條件從而刪除一條或多條記錄。如果不指定刪除條件,DELETE語句將刪除表中全部的記錄,清空資料表。

1 DELETE語法

[ WITH <common_table_expression> [ ,...n ] ]
DELETE 
    [ TOP ( expression ) [ PERCENT ] ] 
    [ FROM ] 
    { { table_alias
      | <object> 
      | rowset_function_limited 
      [ WITH ( table_hint_limited [ ...n ] ) ] } 
      | @table_variable
    }
    [ <OUTPUT Clause> ]
    [ FROM table_source [ ,...n ] ] 
    [ WHERE { <search_condition> 
            | { [ CURRENT OF 
                   { { [ GLOBAL ] cursor_name } 
                       | cursor_variable_name 
                   } 
                ]
              }
            } 
    ] 
    [ OPTION ( <Query Hint> [ ,...n ] ) ] 
[; ]

<object> ::=
{ 
    [ server_name.database_name.schema_name. 
      | database_name. [ schema_name ] . 
      | schema_name.
    ]
    table_or_view_name 
}

2 根據指定條件刪除一條或多條記錄

DELETE FROM [dbo].[Product] WHERE ProductID = 1

3 刪除表中全部記錄

  使用不帶WHERE字句的DELETE語句可以刪除表中的全部記錄。

DELETE FROM [dbo].[Product]

  刪除表中的全部記錄也可以使用TRUNCATE語句:

TRUNCATE TABLE [dbo].[Product]

4 使用 TOP 限制刪除的行數

  當 TOP (n) 子句與 DELETE 一起使用時,將針對隨機選擇的 n 行執行刪除操作。

DELETE TOP (10) FROM [dbo].[Product]

相關文章