今天才发现 SQL Server 中要创建视图,如果用 Select * form Table 的话会存在严重的隐患,就是当表结构发生变化后,视图不会自动更新,当然如果是新增的列在视图中取不到的话也没有什么问题,问题就是这样会造成视图中的列名实现显示的和名中的列对应不起来了,会发生错误,直接点说,视图中的结果是错的。
比如:表中有 BillNO、IsAudit、Note 三列,如果用 select * Table 创建视图后再修改列,那么查询视图时 IsAudit 列的值可能会变成 Note 的值(错位)
所以:严禁用 select * from Table 的形式创建视图,否则后果血淋淋!
假如事情已经发生了怎么办? 1、重新创建视图; 2、语句刷新视图:
sp_refreshview WS_Produce_View //更新视图