Удалить из нескольких таблиц ASP.NET - PullRequest
2 голосов
/ 28 апреля 2009

Как удалить из двух таблиц одновременно, используя один и тот же оператор удаления в ASP.Net?

Ответы [ 3 ]

3 голосов
/ 28 апреля 2009

Просто объедините удаление сценариев 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
1 голос
/ 28 апреля 2009

Я не уверен, что вы имеете в виду, но если вы хотите удалить из таблицы, используя данные других таблиц, это можно сделать с помощью следующего фрагмента (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
0 голосов
/ 28 апреля 2009

Если ваша база данных MsSql, вы можете объединить несколько операторов delete в одной 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 за один проход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...