Столбец «GeoLocation» нельзя изменить, поскольку он является вычисляемым столбцом или является результатом оператора UNION. - PullRequest
0 голосов
/ 07 апреля 2019

Вот код вставки.

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

Проблема с оценкой geography.Когда я создаю триггер, я получаю ошибку The column "GeoLocation" cannot be modified because it is either a computed column or is the result of a UNION operator..Как я могу решить проблему?

Так что это Points таблица

enter image description here

1 Ответ

4 голосов
/ 07 апреля 2019

Вы не можете вставить значения в вычисляемый столбец. Принцип вычисляемых столбцов заключается в том, что вы определяете правило вычисления, а затем ваша СУБД автоматически управляет им, вычисляя значения из других столбцов по мере необходимости.

Без этого столбца ваш триггер сводится к:

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

Как таковой, этот триггер не работает. Если это не будет сделано иначе, чем то, что вы показали нам, вам лучше просто удалить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...