❶ sql多表刪除語句 在線等
--1 如何刪除type的一條記錄
go
create proc procDeleteTypeById
@TID int
as
begin
--先刪除最外層子表的關聯記錄 (pront表)
delete from proct where mstid in(select mstid from mstype where stid in(select stid from stype where tid=@TID))
--在刪除mstype表中的關聯記錄
delete from mstype where stid in(select stid from stype where tid=@TID)
--在刪除stype表中關聯記錄
delete from stype where tid=@TID
--最後刪除根表記錄
delete from [type] where tid=@Tid
end
--2 刪除stype表中記錄同上
go
create proc procDeleteStype
@STID int
as
begin
--先刪除最外層子表的關聯記錄 (pront表)
delete from proct where mstid in(select mstid from mstype where stid=
@STID)
--在刪除mstype表中的關聯記錄
delete from mstype where stid=@STID
--最後刪除根表中的關聯記錄
delete from stype where stid=@STID
end
❷ sql 刪除語句
1、delete 語句用於刪除表中的行。delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中保存
語法:DELETE FROM 表名稱 WHERE 列名稱 = 值,
如:刪除student表中姓名為張三豐的學生信息-delete from studentwhere name=『張三豐』;
2、drop (刪除表):刪除內容和定義,釋放空間。簡單來說就是把整個表去掉.以後要新增數據是不可能的,除非新增一個表。
drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該表的存儲過程/函數將被保留,但其狀態會變為:invalid。
3、truncate (清空表中的數據):刪除內容、釋放空間但不刪除定義(保留表的數據結構)。與drop不同的是,只是清空表數據而已。
注意:truncate 不能刪除行數據,要刪就要把表清空。
(2)sql多表刪除語句擴展閱讀:
資料庫操作中,經常要用到刪除表和刪除表數據,在實際應用中,三者的區別是明確的。
當你不再需要該表時, 用 drop;
當你仍要保留該表,但要刪除所有記錄時, 用 truncate;
當你要刪除部分記錄時(always with a WHERE clause), 用 delete。
truncate 與delete 比較:
1、truncate table 在功能上與不帶 WHERE 子句的 delete語句相同:二者均刪除表中的全部行。
2、truncate 比 delete速度快,且使用的系統和事務日誌資源少。
3、truncate 操作後的表比Delete操作後的表要快得多。
❸ 怎樣用sql語句刪除整個表及資料庫
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。
❹ sql語句多表刪除問題
原則上,同意youyuan1688和ytbelwxg的方法. 5個表,如果每個表都和lm_company表的comid欄位有直接主外鍵關系.那麼ytbelwxg的方法是最佳方案; 仔細看了你的連接條件,猜想,並不是每個表都和lm_company表的comid欄位有直接主外鍵關系.所以通過主外鍵級聯刪除的方案就不可行,那麼就必須逐個表來刪除,而且刪除的順序也有講究,先刪子表,再刪主表. 本例中,刪除的順序應該是e,d,c,b,a; --1.刪除e; sql1="delete from lm_newsinfo from lm_newsinfo as e, lm_company as a where a.comid=e.news_comid and a.comid=" + lblid.Text +";" --2.刪除d; sql2="delete from lm_message from lm_company as a ,lm_Yuzhan as b ,lm_Bookinfo as c ,lm_message as d where a.comid=b.yuzhan_comid and b.yuzhan_id=c.Bkinfo_yuzhanid and c.Bkinfo_id=d.message_bookid and a.comid=" + lblid.Text +";" --刪除c; sql3="delete from lm_Bookinfo from lm_company as a ,lm_Yuzhan as b ,lm_Bookinfo as c where a.comid=b.yuzhan_comid and b.yuzhan_id=c.Bkinfo_yuzhanid and a.comid=" + lblid.Text + ";" --刪除b; sql4="delete from lm_Yuzhan where yuzhan_comid=" + lblid.Text + ";" --刪除a; sql5="delete from lm_company where comid=" + lblid.Text + ";" --合並sql1,sql2,sql3,sql4,sql5 sql=sql1+sql2+sql3+sql4+sql5 --在你的客戶端執行sql命令串即可
❺ sql的delete怎樣同時刪除多個表中的記錄
具體操作步驟如下:
1、首先,打開SQL
Server ,連接到資料庫,如下圖所示,然後進入下一步。
❻ 高手!如何一條SQL語句刪除多張表中記錄
最好不要使用這種方式,包括級聯刪除,觸發器但不限於資料庫的自動處理功能,這樣的後果就是數據在後台自動被改動,在我看來,數據的不可控情況是極度糟糕的問題,而且這樣的情況是程序代碼編寫混亂造成的嚴重後果,我認為,資料庫就只是拿來存放數據的,所有的邏輯都應該跟資料庫無關,資料庫的理想狀態應該是所有數據都是獨立的,所有的邏輯都應該是外部情況。
❼ 關於sql語句刪除多表中的數據
首先,只能批量刪除某個表裡某個日期的所有數據.
其次這個表裡必須有這個時間欄位.比如表a,時間欄位為b
具體sql語句為
delete
from
a
where
datediff(dd,'20080301',b)>0
❽ 如何使用一條sql語句刪除多張表中的數據
在源表中使用觸發器,把這些相應表都一並刪除。
或是設置主外鍵,使之級聯刪除。
❾ SQL批量刪除表語句
如果用sql中的delete語句,delete語句一次只能刪除一張表。批量刪除多張表只能寫多條delete語句,或者用樓上的方法;
❿ 如何使用一條sql語句刪除多張表中的數據
delete t三 where t三.B列 in ( select B列 from t二 inner join t一 on t二.A列=t一.A列 ); delete t二 where t二.A列 in ( select A列 from t一 ) 說明兩sql語句間加號執行點擊sql server 菜單新建查詢彈新窗口運行述語句普通sql語句刪除兩表做與sql server 內機制