1
TSQLのトリガに関する質問があります。Do triggersは他のトリガーを実行させますか?
CREATE TRIGGER DeleteCompany
ON [dbo].[Companies]
INSTEAD OF DELETE
AS
DELETE FROM [dbo].[Employees]
WHERE CompanyId IN (SELECT Id FROM deleted)
GO
CREATE TRIGGER DeleteEmployee
ON [dbo].[Employees]
INSTEAD OF DELETE
AS
DELETE FROM [dbo].[Tasks]
WHERE EmployeeId IN (SELECT Id FROM deleted)
GO
これまでのところは良い:
Companies
---------
Id
Employees
---------
Id
CompanyId
Tasks
-----
EmployeeId
は、今私は、トップ2のテーブルCompanies
とEmployees
のための2つのトリガを作成:
のは、私は3つのテーブルがあるとしましょう。今、私が会社を削除すると、DeleteCompany
トリガーが実行され、マップEmployees
が削除されます。私の質問は、これによってトリガーDeleteEmployee
が実行されますか?基本的にこれをやろうとしていますが、最初のトリガー(DeleteCompany)だけが実行されるためです。
(https://msdn.microsoft.com/en-us/library/ms190739.aspx)[ネストされたトリガを作成](私はによって発見'sql server recursive triggers 'の検索 - この検索や類似のドキュメントが見つからないとしました) –
私は再帰的なトリガーもネストされたトリガーも知りませんでした。 "すべての行を削除しないトリガー"と "実行していないすべてのトリガー"を検索しました – LeonidasFett
トップレベルのトリガーはどういう意味ですか?私はあなたが会社にいないときに彼の「仕事」、「従業員情報」をすべて削除しようとしていると思う。なぜあなたのために恋人なのですか? – TheGameiswar