Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server在插入错误后触发所有数据插入null_Sql Server_Datagridview - Fatal编程技术网

Sql server SQL Server在插入错误后触发所有数据插入null

Sql server SQL Server在插入错误后触发所有数据插入null,sql-server,datagridview,Sql Server,Datagridview,插入后我需要触发器的帮助,我插入了datagridview中的所有数据,我想在late列中填入on-duty-clock-in,但在我创建了这个触发器之后 create trigger insertlate on kkpsurabaya after insert as begin declare @insertlate varchar(50) set @insertlate = (SELECT DATEDIFF(MINUTE, clock_in ,on_duty) AS Min

插入后我需要触发器的帮助,我插入了datagridview中的所有数据,我想在late列中填入on-duty-clock-in,但在我创建了这个触发器之后

create trigger insertlate 
on kkpsurabaya
after insert
as
begin
    declare @insertlate varchar(50)
    set @insertlate = (SELECT DATEDIFF(MINUTE, clock_in ,on_duty) AS MinuteDiff
                       FROM kkpsurabaya)

    insert into kkpsurabaya(Late) 
    values(@insertlate)
end 

当前触发器正在向表中插入其他行。看起来您想使用触发器更新
Late
列。在这种情况下,触发器应该使用插入的
表连接到基表并直接更新

create trigger insertlate on kkpsurabaya
after insert
as
begin
    UPDATE     k
    SET        Late = DATEDIFF(MINUTE, i.clock_in, i.on_duty)
    FROM       inserted i
    INNER JOIN kkpsurabaya k
    ON         i.pk = k.pk
end

或者,您可以创建
Late
列作为计算列。

您的
insertlate
应该做什么?似乎您正在向表中插入另一行
kkpsurabaya
此im仅使用1个表我希望在im插入时钟并在值班后自动填充延迟列。没有工作,只有klik小姐。我的意思是我希望触发器和我插入的表相同。