OracleCommand 执行多条delete 操作?
ADO.NET VB.NET 2005
我需要删除两个表里面的数据
Dim sql As String = "Delete from SDA.SDA_USER where ACCOUNT='" & UID & "';" & vbCrLf
sql += "Delete from SDA.SDA_USER_ROLE where ACCOUNT='" & UID & "';"
除了两次执行 cmdGetS.ExecuteNonQuery 操作外 ,有没有办法 一次 ExecuteNonQuery 删除两个表的数据
谢谢
------解决方案--------------------oracle中可以这样子操作:
delete from 表A;
delete from 表B
表示分别从两个表分别删除,可以一并执行
所以你可以把两个SQL写成字符串后一并执行,然后在commit;
------解决方案--------------------好象用.NET不行哦,可以尝试建立两表关联,或者用存储过程
------解决方案--------------------Dim sql As String = "begin " & vbCrLf
sql += "Delete from SDA.SDA_USER where ACCOUNT='" & UID & "';" & vbCrLf
sql += "Delete from SDA.SDA_USER_ROLE where ACCOUNT='" & UID & "';" & vbCrLf
sql += "end;"
其中回车换行可以没有。
------解决方案--------------------应该是可以的,你可以把语句做为字符串,用动态的SQL来写!
------解决方案--------------------sda_user和sda_user_role建立外键关联关系,并指定ON DELETE CASCADE 的选项。这样在你删除sda_user的时候指定cascade选项,比如:delete from sda.sda_user where account=xx cascade;就可以连带删除了。