我正在使用VS 2017,创建一个SQL Server 2016项目。我有一个表格,在其中我删除了一个列。我有一个使用该列的存储过程(作为从其中选择该列的插入语句的一部分)。
例如:
insert into TableA(SomeColumn1, SomeColumn2)
select e.SomeColumn1, e.DeletedColumn2
from MyTable e
问题是MyTable.DeletedColumn2
不再存在,但是在构建时VS并未将其标记为错误。我只发现尝试发布时出错。
我进入了SQL项目属性,并打开了“将Transact SQL警告视为错误”,并将“将警告视为错误”设置为“全部”。当我转到存储过程时,有问题的列不会用蓝色下划线标记,并且当我选择构建项目时,不会收到任何错误或警告。这非常令人沮丧。
该列曾经存在于表定义文件和已部署的数据库中,但在任何一个中都不存在(我运行了一个手动的alter-table-drop-column)。
有人知道如何强制VS真正地检查架构,理想情况下,如果不再存在列,则抛出错误?