我想使用.net应用程序的单删除查询从两个表中删除行。
CREATE TABLE Table1 (User_Id, Name, Address, Group);
CREATE TABLE Table2 (User_Id, Role, Application);
INSERT INTO Table1 VALUES ('Mike', 'Michael', 'NJ', 'Dev');
INSERT INTO Table1 VALUES ('Cla', 'Clark', 'Tampa', 'Supp');
INSERT INTO Table1 VALUES ('Ton', 'Tony', 'Tulsa', 'Tes');
INSERT INTO Table2 VALUES ('Ton', 'AM', 'Science');
INSERT INTO Table2 VALUES ('Cla', 'SM', 'Magazine');
INSERT INTO Table2 VALUES ('Mike','M', 'Sports');
DELETE Table1, Table2
FROM Table1
JOIN Table2 ON (Table2.User_Id = Table1.User_Id)
WHERE Table1.User_Id = '';
请告知这是一个好的做法还是去SP更好?
答案 0 :(得分:2)
只有在表之间有外键约束并激活约束上的“级联删除”选项时才可以这样做。
如果您不想要约束(尽管我认为这无论如何都是个好主意)您可以使用触发器来删除子表中的相应记录
答案 1 :(得分:0)
直接不可能。我们当然可以。让我们做另一种方式
但是在表现的情况下,我更不愿意触发。所以启用级联删除应该是好的。
ALTER TABLE Table2
ADD CONSTRAINT fk_Table1_User_ID
FOREIGN KEY (User_ID)
REFERENCES Table1(User_ID)
ON DELETE CASCADE;
干杯, 萨拉