SQL中的相关表的同时删除

来源:互联网 发布:罗马全面战争 for mac 编辑:程序博客网 时间:2024/05/17 06:20

   在敲机房收费系统的时候,就遇到一个问题,大概意思如下所示:

    

  

   就是在我们注销用户的时候,同时需要把所有的有关用户的信息同时的删除。这时候就有三个办法可以解决。

 

 

    在vb中,可以找出要删除的相关的信息后,同时删除两次。

    Dim mrc As ADODB.Recordset    Dim txtsql As String    txtsql = "delete * from information where idcard='" & Trim(txtidcard.Text) & "'"

     

    就是多次删除有关的用户的信息。

 

     在SQL中也可以采取触发器来删除相关的用户的信息。

    

create trigger [dbo].[trdelstudent_information]on [dbo].[student_information]for delete as delete online from deleted wheredeleted.idcard=online.idcard

     通过触发器的删除事件,来触发相应的表的字段的删除。

 

     在SQL中也可以通过事务来执行相关的操作。

    

   SQL中的事务就是为了解决当使用删除或者更新命令对数据库进行更新的时候,一次

  只能操作一个表,解决带来数据的不一致的问题,就如上面问题所示。解决办法如下:

begin transaction @transaction_delete
godelete from userinformation where dept_id = ’101’godelete from online where dept_id = ’101’gocommit transaction my_transaction_deletego

   上面的整个语句作为一个事务来处理,就是作为一个整体来处理,同时删除了相关表

中的无用的信息。

   

   通过比较三种办法,第一种办法比较的麻烦,尤其在VB里面需要建立不同的连接来删除,当设计到表比较多的时候,操作极其麻烦。相比较事务和触发器来说,操作相对简单。与check约束相比,触发器可以强制实现更加复杂的数据完整性,而且可以参考其他表的字段。

   


 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果8plus上网慢怎么办 小米5c死机了怎么办 苹果x自拍反方向怎么办 硅胶手机壳出油怎么办 指环扣松了怎么办图解 塑料放久了发粘怎么办 橡胶时间久了粘怎么办 胶的手机套变黄怎么办 手机壳硅胶变黄怎么办 硅胶手机壳大了怎么办 硅胶手机壳变大了怎么办 硅胶手机壳有点大怎么办 硅胶手机壳粘手怎么办 透明手机壳变黄怎么办? 耳机胶套经常掉怎么办 硅胶手机壳粘毛怎么办 耳机海绵套坏了怎么办 沙发垫海绵坏了怎么办 汽车坐海绵坏了怎么办 苹果手机边框有缝隙怎么办 孕期牙套子掉了怎么办 平果充电线不匹配怎么办 苹果六外壳掉漆怎么办 苹果平板充电没反应怎么办 苹果平板黑屏没反应怎么办 苹果平板卡机了怎么办 苹果7plus掉漆怎么办 皮的手机壳脏了怎么办 小米5x边边裂开怎么办 荣耀8的后盖摔了怎么办 hp打印机卡了纸怎么办 华为荣耀9进水了怎么办 小米5x屏幕脱胶怎么办 小米5x后盖松动怎么办 苹果手机没电了怎么办 荣耀9的后盖裂了怎么办 手机一直在开机画面怎么办华为 华为手机一直显示开机画面怎么办 华为p7手机开不了机怎么办 华为荣耀8弯了怎么办 手机壳掉漆了怎么办