有人可以解释为什么这起作用 -
CREATE TRIGGER [dbo].[T_tskmst_D]
ON [dbo].[tskmst]
FOR DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
insert into [database].[dbo].[tskmst] (
tskmst_revtm, tskmst_revtype, tskmst_id, tskmst_name, tskmst_desc,
tskmst_type, owner_id, tskmst_public, tskmst_lstchgtm,
nodmst_id, servicemst_id)
select GETDATE(), 'D', d.tskmst_id, d.tskmst_name, d.tskmst_desc,
d.tskmst_type, d.owner_id, d.tskmst_public, d.tskmst_lstchgtm,
d.nodmst_id, d.servicemst_id
from deleted d
END
但这不是 -
CREATE TRIGGER [dbo].[T_tskmst_D]
ON [dbo].[tskmst]
FOR DELETE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
insert into [database].[dbo].[tskmst] (
tskmst_revtm, tskmst_revtype, tskmst_id, tskmst_name, tskmst_desc,
tskmst_type, owner_id, tskmst_public, tskmst_lstchgtm,
nodmst_id, servicemst_id)
select GETDATE(), 'D', d.tskmst_id, d.tskmst_name, d.tskmst_desc,
d.tskmst_type, d.owner_id, d.tskmst_public, d.tskmst_lstchgtm,
d.nodmst_id, d.servicemst_id
from deleted d
inner join tskmst tm on tm.tskmst_id = d.tskmst_id
END
我很困惑为什么删除上的内部加入会阻止查询能够复制信息?是因为在内部连接发生之前已删除数据吗?是否可以在删除发生之前复制数据?
我可以从已删除中完成,但问题是一些表包含文本列(不要问),所以我不能从删除中插入其他列,而是缺少某些列。
它不起作用,因为如果它用于删除触发器。这意味着表格中已经删除的行不存在。
当您一无所获时,您总是一无所获。