SQL Server不允许我使用视图的列

SQL Server不允许我使用视图的列,sql,sql-server,triggers,Sql,Sql Server,Triggers,图片可能比解释更好: 如您所见,SQL Server不允许我为触发器选择传感器id。我总是有无效的列名作为错误。我怎样才能修好它 编辑 以下是我的wiew查询: SELECT c.id_capteur AS sensor_id, sr.alias, c.virtual, MAX(d.date) AS date, d.value FROM dbo.Smartparking_reference AS sr INNER JOIN

图片可能比解释更好:

如您所见,SQL Server不允许我为触发器选择传感器id。我总是有无效的列名作为错误。我怎样才能修好它

编辑 以下是我的wiew查询:

SELECT        c.id_capteur AS sensor_id, sr.alias, c.virtual, MAX(d.date) AS date, d.value
FROM            dbo.Smartparking_reference AS sr INNER JOIN
                         dbo.Sensor AS c ON c.id_capteur = sr.id_capteur LEFT OUTER JOIN
                         dbo.Sensor_data AS d ON c.id_capteur = d.id_capteur
GROUP BY sr.alias, c.id_capteur, d.id_capteur, c.virtual, d.value

可能Sensor_id是表的IDENTITY列,因此它不会被insert语句插入,因此,它的值不在插入的表中。

inserted是一个保留的表名,因此您是否在表中的任何位置插入sensor_id列以便提取?您能否显示整个触发器定义?您能否分享插入表的设计?这里的混淆是,您在查询中使用inserted来使用sensor_id列,但在左侧签入后,我认为视图名称是ParkingSlot。错误是否只是InteliSense?您可以忽略它并运行脚本来创建触发器吗?您忘记了一次可以插入多行,如果插入两行或多行,请选择@sensor=i。inserted i中的sensor_id将是不确定的,并且只对插入的一行执行任何操作。您应该始终基于以下假设编写触发器:插入的内存驻留表将包含多行。标识列和值应位于插入的虚拟表中。我将指定我的视图查询