Sql 该栏为「;地理定位“;无法修改,因为它是计算列或是UNION运算符的结果

Sql 该栏为「;地理定位“;无法修改,因为它是计算列或是UNION运算符的结果,sql,sql-server,tsql,sql-insert,database-trigger,Sql,Sql Server,Tsql,Sql Insert,Database Trigger,这是插入代码 CREATE TRIGGER InsertedPoint ON Points instead of insert AS insert into Points(Route_Id,Title,Description,Latitude,Longitude,GeoLocation) SELECT Route_Id,Title,Description,Latitude,Longitude, geography::STPointFromText('POINT(' + CAST([Latitud

这是插入代码

CREATE TRIGGER InsertedPoint
ON Points
instead of insert
AS
insert into Points(Route_Id,Title,Description,Latitude,Longitude,GeoLocation)
SELECT Route_Id,Title,Description,Latitude,Longitude,
geography::STPointFromText('POINT(' + CAST([Latitude] AS VARCHAR(20)) + ' ' + CAST([Longitude] AS VARCHAR(20)) + ')', 4326)
FROM inserted
关于地理价值的问题。创建触发器时出现错误
无法修改列“GeoLocation”,因为它是一个计算列或是UNION运算符的结果。
。我如何解决这个问题

所以它是


不能在计算列中插入值。计算列的原理是定义一个计算规则,然后RDBMS自动管理它,根据需要从其他列计算值

没有这根柱子,你的扳机可以归结为:

CREATE TRIGGER InsertedPoint
ON Points
INSTEAD OF INSERT
AS
INSERT INTO Points(Route_Id,Title,Description,Latitude,Longitude)
SELECT Route_Id,Title,Description,Latitude,Longitude
FROM inserted

实际上,这个触发器是一个no操作。除非它做了你展示给我们的其他事情,否则你最好删除它。

地理定位是计算列吗?请为表
显示
创建表
语句好吗?是计算列如果Points.GeoLocation是计算列,则不要将其添加到insert中,但我必须插入GeoLocation。您建议使用什么来代替计算列?我想您可以查看用于地理定位列的计算。如果你必须改变它。但是我认为你只能通过一个下拉列表来完成。如果这样做有用的话,也许可以让它持续一段时间。