这个表有一个替代型的删除触发器,就是先删除另一个与此表相关的内容,再删除此表tb的内容(tb表共有13行,另一表也是13行,与这个表有一一对应的关系)
---------------------
多半是这个的问题
---------------------
多半是这个的问题
解决方案 »
- SQL Server 2008 Management Studio Express安装后配置管理器里没有sql server服务
- 一个简单的问题
- SQL2005 做分區,如何將已存在的具有多重約束的表加入分區。
- 这种查询sql如何写?
- 送分!!
- winxp系统能装上sql server2000版本吗
- 大家来看看,这个简单的Sql语法是什么
- sqlserver2000捆绑方法?
- 数据库中有一个字段的值为 11/aaa/222/22222,问题怎么用sql截取第二个/和第三个/之间的字符?
- Insert 数据报错,错误信息identify off。
- 往SQL server2000中导入数据出错
- 数据误删,如何恢复(急)
instead of DELETE--替代型触发器
AS
begin
declare @col varchar(50)
select @col=tb1_col from deleted
delete from tb2 where tb2_col=@col--先删tb2中的
delete from tb1 where tb1_col=@col--后删tb1中的
end
说明:另一个表是tb2
这么简单的触发器,我应该没有写错吧!为什么会这样,高人请指教,谢谢!
instead of DELETE--替代型触发器
AS
begin
-- declare @col varchar(50)
-- select @col=tb1_col from deleted
delete a
from tb2 a
where exists(select 1 from deleted where col = a.col) --tb2_col=@col--先删tb2中的
delete a
from tb1 a
where exists(select 1 from deleted where col = a.col) --tb1_col=@col--后删tb1中的
end go----CREATE TRIGGER [del_frmright] ON [dbo].[tb1]
for DELETE--替代型触发器
AS
begin delete a
from tb2 a
where exists(select 1 from deleted where col = a.col) end go
批量的就得用join 或exists删除,select 只能取到你删除的数据的最后一条的@col=tb1_col