0
有人可以解釋爲什麼這工程 -MSSQL - 對於刪除觸發器不工作內部聯接
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
我很困惑,爲什麼一個內部聯接在刪除將停止查詢能夠複製信息?是否因爲在內部連接發生之前數據被刪除?發生刪除之前是否可以複製數據?
我可以從刪除,但問題是一些表包含文本列(不問),所以我不能從刪除插入否則我缺少某些列。
Thnx這就是我的想法。請問,那麼有沒有辦法從刪除的東西中複製文本列?如果我從插入到刪除,我必須排除文本列。 – whoisearth
我不明白爲什麼你必須排除文本列。 – GriGrim
,因爲如果您嘗試插入或插入使用插入或刪除的文本列,則失敗。 ntext不是可以使用的有效列。 – whoisearth