SQL 怎么級聯刪除語句
方法一:
MSSQLSERVER是支持級聯更新和級聯刪除的,你要在建立外鍵的時候,要指定
EP:
alter table tb_userroles
add constraint FK_TB_USERR_RELATIONS_TB_FUNCT foreign key (gnbm)
references tb_function (gnbm)
on update cascade on delete cascade
方法二:用數據庫觸發器
SQL 倆條普通sql查詢語句和一句級聯sqll查詢語句哪個快
在查詢多表數據,注意是在對比查詢同一數據的比較!
個人認為在查詢多表的情況下級聯的效率比較優越!舉例說明一下:
A 文章表 三個字段
ID TITLE USERID
B會員表 兩個字段
USERID USER
如果要求查詢某個用戶USER用戶所發表的TITLE;
當然用單個SQL查詢是可以的,我們可以先查出會員 在通過USERID關聯查詢出TITLE!這是方法效率最低的
也可以采用in 通過
select * from A where USERID in (select USERID from B where user = "??" ) 該語句在執行上沒有join 效率更高
如果樓主實在想判斷執行的效率 我個人是建議到查詢分析器測試! 有查詢的實際時間可以對比!親自測試比我們告訴你的會更好!呵呵
SQl語句的級聯刪除問題
方法一:
mssqlserver是支持級聯更新和級聯刪除的,你要在建立外鍵的時候,要指定
ep:
alter table tb_userroles
add constraint fk_tb_userr_relations_tb_funct foreign key (gnbm)
references tb_function (gnbm)
on update cascade on delete cascade
方法二:用數據庫觸發器
多表查詢,除了在SQL語句中級聯還有沒有其它方式
我給你寫一個嵌套的查詢!不用主外鍵但是要求表中的值必須是一樣的!
第一種
select xh,yw,(select xx from b) from a
where (select xh from b)=(select xh from a)
第二種
select *,*,* from a as Aa,b as Bb where *=*
這樣寫!就是你的兩個表種根本沒有主外鍵也可以查詢!