Удалить строку SQL и все зависимости

Если я хочу удалить 1 человека из базы данных AdventureWorks2017, например:

DELETE FROM [Person].[Person] WHERE BusinessEntityID = 1 

Я знаю, что должен убедиться, что все зависимости от этого человека удалены, прежде чем я смогу это сделать.

Поскольку Person.Person имеет много зависимостей и может иметь 7 уровней зависимостей (как для [Sales].[SalesOrderHeaderSalesReason]), как лучше всего это сделать?

Как мне написать сценарий db, чтобы удалить его и все зависимости этого человека.


person Kaly Web    schedule 08.10.2018    source источник
comment
Использование ограничений каскадного удаления. База данных сделает это автоматически.   -  person Gordon Linoff    schedule 08.10.2018
comment
Возможный дубликат Как удалить все зависимые строки   -  person Marta B    schedule 08.10.2018
comment
См. stackoverflow.com/questions/6260688/   -  person SUMguy    schedule 08.10.2018
comment
либо с instead of trigger, либо путем установки cascade delete на   -  person GuidoG    schedule 08.10.2018
comment
Лучший способ? Я поклонник такой логики в хранимой процедуре. Он может удалить все связанные строки в контексте одной транзакции. Он позволяет вам отозвать разрешения, которые позволяют пользователям удалять строки непосредственно из задействованных таблиц, чтобы они могли использовать ваш SP, предоставляет место для дополнительных проверок авторизации, ведения журнала и т. Д. Ошибки могут распространяться с поразительной скоростью, когда запускается каскад.   -  person HABO    schedule 08.10.2018