У меня есть пример, как это,Выбор записи и удаления с помощью хранимой процедуры
Table1
Table2
Table21
Table22
Table23
Table2
является ребенок таблица Table1
Я написал хранимую процедуру Delete_Table2
, которая удаляет все дочерние таблицы, Table21
, Table22
, Table23
и Table2
также.
Теперь я создаю удалить хранимую процедуру для удаления записей из Table1
как:
Create PROC [dbo].[Delete_Table1]
@Table1Id int
AS
BEGIN
BEGIN TRAN delete_table1_trans
--Select Table2ID from Table2 where Table1Id = @Table1ID
--loop records and EXEC Delete_Table2 @param
COMMIT TRAN delete_table1_trans
END
Что будет лучшая идея? Я могу использовать курсор, но пытаюсь найти хорошую идею, например, вызывать функцию в select statement.
Select DELETE_Table2 (Table2Id)
from Table2
where Table1Id = 1
почему вы хотите, чтобы удалить так много таблиц? Что такое реальная история, как? Почему бы вам не поставить все под одним проком вместе с транзакцией? Вы можете получить лучшую ИДЕЮ только тогда, когда требование будет немного ясным. – KumarHarsh