eri*_*pap 2 sql-server views alter-table
我总是问自己,为什么如果在SQL Server上有两个表,我创建一个这样的视图:
CREATE VIEW vw_MyView
AS
SELECT T1.*, T2.ClientName FROM Table1 T1 inner join Table2 T2 on T1.ID_Client=T2.ID_Client
Run Code Online (Sandbox Code Playgroud)
当我需要向表1添加字段时,视图显示值未命中?第一列的值显示在colunm 2上,依此类推!
这发生在我测试的每个版本的SQL Server上.任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题?
这种行为给出了很大的问题,特别是对于派生的视图.谢谢
更新架构后,您应刷新依赖于架构的任何和所有视图的视图元数据:
EXEC sp_refreshview @viewName
Run Code Online (Sandbox Code Playgroud)
@viewName变量保存视图名称的位置.您可以在脚本中使用此存储过程,该脚本可以获取依赖于表的视图,以便动态刷新它们,或者您可以旋转所有视图(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS)并调用存储过程在每个观点上.
这样做的另一个好处是可以找到任何因架构更改而无效的视图并标记它们,因为它们在调用SP时会出错.
| 归档时间: |
|
| 查看次数: |
2111 次 |
| 最近记录: |