有两个表 tb1 ,tb2tb1中的id
是 tb2 的 tid如何写一个触发器删除tb1中的一条记录 相应删除 tb2中的 tb2.tid = tb1.id 中的记录
是 tb2 的 tid如何写一个触发器删除tb1中的一条记录 相应删除 tb2中的 tb2.tid = tb1.id 中的记录
解决方案 »
- 菜鸟求助一个关于sql的查询语句
- 字符连接问题!
- 又遇到一个郁闷问题,解决了接贴!
- 如何查看sqlserver2008日志?分不够了等挣分了一定追加sos急
- 对Sys.dm_exec_sql_text里statement_start_offset以及statement_end_offset 使用的不明白之处
- 求一SQL嵌套问题
- 请问已发布的表怎么修改其中一些字段,其它服务器已订阅
- 关于SQL Server中建库导致的速度问题
- 能否让两台服务器用同一个数据库?
- 做一個制造業ERP系統,它的數據運算過程用存儲過程好還是寫在程序中好?
- 写一个存 过程应该放到哪里去啊
- 【求助】mysql查询语句的问题
还有一种就是 AFTER 触发器
createt trigger d_tb1 on tb1
after delete
as
begin
delete tb2
from tb2 join deleted d on tb2.tid=d.id
end
after delete
as
begin
delete tb2 from tb2,delete d where tb2.tid=d.id
end
是deleted表
你tb1删除的数据 会存储在deleted中
是存放删除的记录的但
这样写 为什么不行
create trigger d_tb1 on tb1
after delete
as
begin
delete from tb2 where tb2.tid = deleted.id
end
我不理解 这句 delete tb2
from tb2 join deleted d on tb2.tid=d.id为什么
delete 与from之间可以加表名
还可以用join
我不理解这句
里面创建外键的时候有一个级联什么的
你将Delete设为级联,那么当你删除这张表的数据时,其它表的数据也会删除
CREATE TRIGGER Tr_Delete ON tb1
FOR DELETE
AS
BEGIN
SET NOCOUNT ON
DECLARE @id INT
SELECT @id=id FROM DELETED
DELETE FROM tb2
WHERE tb2.tid=@id
SET NOCOUNT OFF
END
SELECT *
FROM ta a
LEFT OUTER JOIN tb b ON a.id=b.id一样DELETE FROM 这样也可以这样写还可以使用
UPDATE语句也可以使用这样内联与外联的方式更多的语法可以参考F1联机帮助
delete 与from之间可以加表名
还可以用join我不理解这句delete就跟select一样,都可以用join的..
after delete
as
begin
delete tb2 from tb2 join deleted d on tb2.tid=d.id
end
带连接的delete虽然不是标准SQL
但是目前版本都支持
你要是一定不要这样,可以写成
create trigger d_tb1 on tb1
after delete
as
begin
delete tb2
where exists(
select * from deleted d where tb2.tid=d.id)
end
指定在 DELETE、SELECT 和 UPDATE 语句中使用的表、视图、派生表和连接表。语法
[ FROM { < table_source > } [ ,...n ] ] < table_source > ::=
table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [ ,...n ] ) ]
| view_name [ [ AS ] table_alias ] [ WITH ( < view_hint > [ ,...n ] ) ]
| rowset_function [ [ AS ] table_alias ]
| user_defined_function [ [ AS ] table_alias ]
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
| < joined_table >< joined_table > ::=
< table_source > < join_type > < table_source > ON < search_condition >
| < table_source > CROSS JOIN < table_source >
| [ ( ] < joined_table > [ ) ]< join_type > ::=
[ INNER | { { LEFT | RIGHT | FULL } [OUTER] } ]
[ < join_hint > ]
JOIN参考基本语法吧,JOIN 也可以写在DELETE 后面的表中连接
标准语法写多了手抽筋
所以变个格式继续
好像 okay 和 OK
i am 和 i'm 一样多看下高手写的代码 或许对楼主有些帮助哦