У меня проблема с этим триггером SQL Server, я хочу обновлять информацию в таблице Devices
после каждой вставки в таблицу Mindframe
, но когда у меня есть 2 записи, разделенные миллисекундами, выдает ошибку, сообщающую, что возвращается более 1 значение.
Может кто-нибудь объяснить мне, почему? Или укажите на мою ошибку ...
Триггер
CREATE OR ALTER TRIGGER device_update
ON MindFrame
FOR INSERT
AS
BEGIN
IF @@ROWCOUNT = 0
RETURN
SET NOCOUNT ON;
IF EXISTS(SELECT * FROM INSERTED)
BEGIN
DECLARE @dev NVARCHAR(6)
DECLARE @lat NVARCHAR(45)
DECLARE @lng NVARCHAR(45)
DECLARE @bat FLOAT
SET @dev = (SELECT device from inserted)
SET @lat = (SELECT latitude from inserted)
SET @lng = (SELECT longitude from inserted)
SET @bat = (SELECT battery from inserted)
UPDATE Devices
SET lat = @lat, lng = @lng, bat = @bat, last_seen = GETDATE()
WHERE @dev = Devices.device
END
END