Sql server 每个插入行中的元素-不能保证所选的4个值是相关的。@Damien_the_unsiver:是的,这就是我的意思-你应该说得更清楚-谢谢!无论以何种方式选择这些值-此触发器都不会工作,也不会执行它应该执行的操作。。。 Insert into tblSettl
Sql server 每个插入行中的元素-不能保证所选的4个值是相关的。@Damien_the_unsiver:是的,这就是我的意思-你应该说得更清楚-谢谢!无论以何种方式选择这些值-此触发器都不会工作,也不会执行它应该执行的操作。。。 Insert into tblSettl,sql-server,sql-server-2008,Sql Server,Sql Server 2008,每个插入行中的元素-不能保证所选的4个值是相关的。@Damien_the_unsiver:是的,这就是我的意思-你应该说得更清楚-谢谢!无论以何种方式选择这些值-此触发器都不会工作,也不会执行它应该执行的操作。。。 Insert into tblSettlement (MessageID,Lat,Long) Select Messageid,y,x from inserted ALTER TRIGGER [dbo].[AddSettlementOnINSERT] ON [dbo].[Tbl
每个插入行中的元素-不能保证所选的4个值是相关的。@Damien_the_unsiver:是的,这就是我的意思-你应该说得更清楚-谢谢!无论以何种方式选择这些值-此触发器都不会工作,也不会执行它应该执行的操作。。。
Insert into tblSettlement (MessageID,Lat,Long) Select Messageid,y,x from inserted
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
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)