导航
  • 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流
  • 问答

OracleCommand 执行多条delete 操作?

lwl0606 2008-08-20 09:15:14
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 删除两个表的数据
谢谢
...全文
85 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ColaCoding 2009-06-09
学习了!
回复
oracledbalgtu 2008-08-20
sda_user和sda_user_role建立外键关联关系,并指定ON DELETE CASCADE 的选项。这样在你删除sda_user的时候指定cascade选项,比如:delete from sda.sda_user where account=xx cascade;就可以连带删除了。


[Quote=引用楼主 lwl0606 的帖子:]
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 删除两个表的数据
谢谢
[/Quote]
回复
cosio 2008-08-20
应该是可以的,你可以把语句做为字符串,用动态的SQL来写!
回复
bobfang 2008-08-20
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;"

其中回车换行可以没有。
回复
lwl0606 2008-08-20
把两个SQL写成字符串后一并执行 会报错
回复
fazzamilan 2008-08-20
好象用.NET不行哦,可以尝试建立两表关联,或者用存储过程
回复
cosio 2008-08-20
oracle中可以这样子操作:
delete from 表A;
delete from 表B
表示分别从两个表分别删除,可以一并执行
所以你可以把两个SQL写成字符串后一并执行,然后在commit;

[Quote=引用楼主 lwl0606 的帖子:]
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 删除两个表的数据
谢谢
[/Quote]

回复
发动态
发帖子
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
社区公告
暂无公告