引用插入的表 T-SQL 上的列



因此,我正在尝试创建一个触发器,如果外键代码无效,该触发器将在插入数据时引发错误。我有两个表,发布者和标题。标题上有发布者代码,发布者也是如此。我的标题上有用于插入的触发器,我目前正在执行一个如果不存在并选择代码等于插入行的发布者代码的发布者行。我不知道这是否是正确的方法,也可能不是,因为SQL给了我一个"找不到多部分标识符Inserted.PublisherCode"错误。你们能提供的任何帮助将不胜感激。谢谢。

go
create trigger TR_Title_PublisherCode_Insert
on title
for Insert
as
    if not exists(select * from Publisher where PublisherCode = Inserted.PublisherCode)
    begin
        raiserror('Publisher does not exist', 16, 1)
        rollback tran
    end

插入和删除也是表

所以你必须这样做:

if not exists(
    select * from Publisher 
    where PublisherCode in (SELECT PublisherCode FROM inserted) 
)

顺便说一下,正如hkf所说,如果你识别了PublisherCode AS外键,你就不需要触发

最新更新