使用SSMS刪除數據
1、連接數據庫、選擇數據表-》右鍵點擊,選擇所有行(或者選擇前200行)。
2、在數據窗口中選擇數據行(注意點擊最左邊列選擇整個數據行)-》在最左側右鍵點擊-》選擇刪除-》在彈出框中點擊確定。
3、示例結果如下:
使用T-SQL腳本刪除數據
刪除單表單行數據
語法:delete from 數據庫名.dbo.表名 where 條件;
示例:delete from testss.dbo.test1 where id='12';
刪除單表多行數據
語法:delete from 數據庫名.dbo.表名 where 條件或者delete top(n) from 數據庫名.dbo.表名 where 條件;
示例:
delete from testss.dbo.test1 where id>='14' and id<='15';
delete from testss.dbo.test1 where id between '16' and '17';
delete from testss.dbo.test1 where id in ('18','19');
delete top(2) from testss.dbo.test1 where id>='20';
刪除單表中重復數據
語法:delete a from 表 as a left join 表 as b on a.列=b.列 where a.列>b.列;
示例:delete a from test1 as a left join test1 as b on a.name=b.name where a.id>b.id;
刪除表中所有數據
語法:delete from 數據庫名.dbo.表名;
示例:delete from testss.dbo.test1;
清空表中所有數據
語法:truncate table 數據庫名.dbo.表名;
示例:truncate table testss.dbo.test1;
truncate和delete總結
效率:truncate比delete速度快且使用的系統和事務日志資源少。
應用范圍:truncate只能對table,delete可以是table和view。
日志操作:delete 語句每次刪除一行,並在事務日志中為所刪除的每行記錄一項,所以可以對delete操作進行roll back
兩者差異:
1、truncate在各種表上無論是大的還是小的都非常快,如果有rollback命令delete將被撤銷,而truncate則不會被撤銷。
2、truncate是一個DDL語言,向其他所有的DDL語言一樣,他將被隱式提交,不能對truncate使用rollback命令。
3、truncate將重新設置高水平線和所有的索引,在對整個表和索引進行完全瀏覽時,經過 truncate 操作后的表比delete操作后的表要快得多。
4、truncate不能觸發任何delete觸發器。
5、當表被truncate清空后表和表的索引講重新設置成初始大小,而delete則不能。
6、不能清空父表。
總結
delete不需要列名和通配符,它是刪除整行而不是刪除列,要刪除指定的列,請使用update語句,並且delete語句從表中刪除行,甚至是刪除表中所有行,而不是刪除表本身。刪除數據有風險,刪除之前應該先備份。