diff --git a/test/sql/gh2141-delete-trigger-drop-table.result b/test/sql/gh2141-delete-trigger-drop-table.result
new file mode 100644
index 0000000000000000000000000000000000000000..9bf76bff3a001a67c1ce6c76965ae7630c7f9e77
--- /dev/null
+++ b/test/sql/gh2141-delete-trigger-drop-table.result
@@ -0,0 +1,59 @@
+test_run = require('test_run').new()
+---
+...
+-- create space
+box.sql.execute("DROP TABLE IF EXISTS t")
+---
+...
+box.sql.execute("CREATE TABLE t(id PRIMARY KEY)")
+---
+...
+-- create before update trigger
+box.sql.execute("CREATE TRIGGER tt_bu BEFORE UPDATE ON t BEGIN SELECT 1; END")
+---
+...
+-- create after update trigger
+box.sql.execute("CREATE TRIGGER tt_au AFTER UPDATE ON t BEGIN SELECT 1; END")
+---
+...
+-- create before insert trigger
+box.sql.execute("CREATE TRIGGER tt_bi BEFORE INSERT ON t BEGIN SELECT 1; END")
+---
+...
+-- create after insert trigger
+box.sql.execute("CREATE TRIGGER tt_ai AFTER INSERT ON t BEGIN SELECT 1; END")
+---
+...
+-- create before delete trigger
+box.sql.execute("CREATE TRIGGER tt_bd BEFORE DELETE ON t BEGIN SELECT 1; END")
+---
+...
+-- create after delete trigger
+box.sql.execute("CREATE TRIGGER tt_ad AFTER DELETE ON t BEGIN SELECT 1; END")
+---
+...
+-- check that this triggers exist
+box.sql.execute("SELECT * FROM _trigger")
+---
+- - ['tt_ad', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2FkIEFGVEVSIERFTEVURSBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
+  - ['tt_ai', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2FpIEFGVEVSIElOU0VSVCBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
+  - ['tt_au', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2F1IEFGVEVSIFVQREFURSBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
+  - ['tt_bd', !!binary gaNzcWzZO0NSRUFURSBUUklHR0VSIHR0X2JkIEJFRk9SRSBERUxFVEUgT04gdCBCRUdJTiBTRUxFQ1QgMTsgRU5E]
+  - ['tt_bi', !!binary gaNzcWzZO0NSRUFURSBUUklHR0VSIHR0X2JpIEJFRk9SRSBJTlNFUlQgT04gdCBCRUdJTiBTRUxFQ1QgMTsgRU5E]
+  - ['tt_bu', !!binary gaNzcWzZO0NSRUFURSBUUklHR0VSIHR0X2J1IEJFRk9SRSBVUERBVEUgT04gdCBCRUdJTiBTRUxFQ1QgMTsgRU5E]
+...
+-- drop table
+box.sql.execute("DROP TABLE t IF EXISTS")
+---
+- error: 'near "IF": syntax error'
+...
+-- check that triggers were dropped with deleted table
+box.sql.execute("SELECT * FROM _trigger")
+---
+- - ['tt_ad', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2FkIEFGVEVSIERFTEVURSBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
+  - ['tt_ai', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2FpIEFGVEVSIElOU0VSVCBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
+  - ['tt_au', !!binary gaNzcWzZOkNSRUFURSBUUklHR0VSIHR0X2F1IEFGVEVSIFVQREFURSBPTiB0IEJFR0lOIFNFTEVDVCAxOyBFTkQ=]
+  - ['tt_bd', !!binary gaNzcWzZO0NSRUFURSBUUklHR0VSIHR0X2JkIEJFRk9SRSBERUxFVEUgT04gdCBCRUdJTiBTRUxFQ1QgMTsgRU5E]
+  - ['tt_bi', !!binary gaNzcWzZO0NSRUFURSBUUklHR0VSIHR0X2JpIEJFRk9SRSBJTlNFUlQgT04gdCBCRUdJTiBTRUxFQ1QgMTsgRU5E]
+  - ['tt_bu', !!binary gaNzcWzZO0NSRUFURSBUUklHR0VSIHR0X2J1IEJFRk9SRSBVUERBVEUgT04gdCBCRUdJTiBTRUxFQ1QgMTsgRU5E]
+...
diff --git a/test/sql/gh2141-delete-trigger-drop-table.test.lua b/test/sql/gh2141-delete-trigger-drop-table.test.lua
new file mode 100644
index 0000000000000000000000000000000000000000..6cb6273f171482b6160d1f15f9c192a5bd8affc7
--- /dev/null
+++ b/test/sql/gh2141-delete-trigger-drop-table.test.lua
@@ -0,0 +1,32 @@
+test_run = require('test_run').new()
+
+-- create space
+box.sql.execute("DROP TABLE IF EXISTS t")
+box.sql.execute("CREATE TABLE t(id PRIMARY KEY)")
+
+-- create before update trigger
+box.sql.execute("CREATE TRIGGER tt_bu BEFORE UPDATE ON t BEGIN SELECT 1; END")
+
+-- create after update trigger
+box.sql.execute("CREATE TRIGGER tt_au AFTER UPDATE ON t BEGIN SELECT 1; END")
+
+-- create before insert trigger
+box.sql.execute("CREATE TRIGGER tt_bi BEFORE INSERT ON t BEGIN SELECT 1; END")
+
+-- create after insert trigger
+box.sql.execute("CREATE TRIGGER tt_ai AFTER INSERT ON t BEGIN SELECT 1; END")
+
+-- create before delete trigger
+box.sql.execute("CREATE TRIGGER tt_bd BEFORE DELETE ON t BEGIN SELECT 1; END")
+
+-- create after delete trigger
+box.sql.execute("CREATE TRIGGER tt_ad AFTER DELETE ON t BEGIN SELECT 1; END")
+
+-- check that this triggers exist
+box.sql.execute("SELECT * FROM _trigger")
+
+-- drop table
+box.sql.execute("DROP TABLE t IF EXISTS")
+
+-- check that triggers were dropped with deleted table
+box.sql.execute("SELECT * FROM _trigger")