【发布时间】:2010-10-22 05:47:41
【问题描述】:
如何在 ASP.Net 中使用相同的 delete 语句一次从两个表中删除?
【问题讨论】:
-
这是一个 MySQL 数据库。我确实尝试了代码,但我没有任何运气。我对这一切都很陌生。谢谢
标签: asp.net sql vb.net ado.net
如何在 ASP.Net 中使用相同的 delete 语句一次从两个表中删除?
【问题讨论】:
标签: asp.net sql vb.net ado.net
如果您的数据库是 MsSql,您可以在一个 SqlCommand 中组合多个删除语句。
试试这个:
string deleteQuery = "DELETE FROM Table1; DELETE FROM Table2;";
using (SqlConnection connection = new SqlConnection(connectionstring))
using (SqlCommand deleteCommand = new SqlCommand(deleteQuery, connection))
{
connection.Open();
deleteCommand.ExecuteNonQuery();
}
这将一次性删除 table1 和 table2 中的所有记录。
【讨论】:
我不确定你的意思,但是如果你想使用另一个表的数据从一个表中删除,这可以使用以下 sn-p (SQL Server) 来完成:
DELETE x
FROM TableX x INNER JOIN TableY y
ON x.SomeID = y.SomeID
WHERE ...
如果你想在一个命令中执行两个 DELETE 语句,你可以将它们连接起来,用分号隔开:
DELETE TableX WHERE SomeID = ...; DELETE TableY WHERE SomeID = ...
你也可以使用存储过程:
CREATE PROCEDURE DeleteTwoTables
@ParamX int,
@ParamY int
AS
DELETE TableX WHERE SomeID = @ParamX
DELETE TableY WHERE SomeID = @ParamY
【讨论】:
只需连接删除 sql 脚本:
Using connection As New SqlConnection(connectionString)
Dim command As New
SqlCommand("DELETE FROM Table1 WHERE ID1=@ID1; DELETE FROM Table2 WHERE ID2=@ID2;", connection)
command.Parameters.Add("@ID1", 1);
command.Parameters.Add("@ID2", 2);
command.Connection.Open()
command.ExecuteNonQuery()
End Using
【讨论】: