Ste*_*ler 0 sql-server sql-view
我用它创建了一个视图CREATE VIEW dbo.myView AS SELECT * FROM dbo.myTable.myView我添加列时不会选择新列dbo.myTable.有没有办法让我的视图选中表中的所有列,即使我添加列而不必更新视图?
不可以.您必须通过重新创建或使用来更新视图sp_refreshview.
这记录在CREATE VIEW:
如果未使用
SCHEMABINDING子句创建视图,sp_refreshview则应在对视图下方影响视图定义的对象进行更改时运行.否则,查询时视图可能会产生意外结果.
并且SCHEMABINDING在这里也没有帮助 - 因为这可以防止您甚至对基表进行重大更改.
一般来说,这SELECT * ...是一个懒惰的速记,你应该使用它的唯一地方是内部IF EXISTS()测试.在其他任何地方,你基本上都是为了表现不佳(特别是如果其他人后来出现并在你的桌子上添加一个新栏目,其中包含每一行的莎士比亚全集).
| 归档时间: |
|
| 查看次数: |
3821 次 |
| 最近记录: |