Таблица Message
уже имеет триггер.Успешно работает внутри этого триггера. У меня есть оператор insert
:
Insert into tblSettlement (MessageID,Lat,Long) Select Messageid,y,x from inserted
На столе tblSettlement
Я поместил этот триггер:
ALTER TRIGGER [dbo].[AddSettlementOnINSERT]
ON [dbo].[TblSettlement]
After INSERT
AS
DECLARE @id Bigint, @Lat Float,@Long Float, @LocName Varchar(200), @Dist float,@upd bit
Set @upd = (SELECT updated FROM inserted)
SET @id = (SELECT MessageID FROM inserted)
SET @lat = (SELECT [Lat] FROM inserted)
SET @Long = (SELECT [Long] FROM inserted)
if (@upd = 0)
begin
declare @table table
(Location Varchar(200),Distance float)
insert into @table
SELECT top 1 Full_Name_nd, SQRT(
POWer(69.1 * (lat - @lat), 2) +
POWer(69.1 * (@long - long) * COS(lat / 57.3), 2))As distance
FROM geodb.dbo.geonames where SQRT(
POWer(69.1 * (lat - @Lat), 2) +
POWer(69.1 * (@Long - long) * COS(lat / 57.3), 2)) < 1
set @LocName = (select location from @table)
set @Dist = (select distance from @table)
Insert into dbo.tblset2
(Messageid,lat,long,settlement,distance)values(@id,@lat,@long,@locName,@Dist)
end
Однако проблема в том, что всякий раз, когда мывключите вышеуказанный триггер, вставка перестает работать с таблицей Message
.
Значение: мы хотим вставить, после вставки, принимая несколько значений столбца, и попытаться обновить другую таблицу в Trigger той же таблицы.Что на самом деле не позволяет нам вставить.