Sql-Server

SQL Server 表和視圖顯示不同的值

  • January 20, 2018

我有一個從顯示不同數據的表中選擇數據的視圖。

表是dbo.user,視圖是dbo.users(不要判斷,我繼承了這個系統)。觀點很簡單select * from table

如果我執行以下語句:

SELECT Field1, Field2 FROM dbo.[User] WITH (NOLOCK) ORDER BY Field1;

SELECT Field1, Field2 FROM dbo.Users WITH (NOLOCK) ORDER BY Field1;

我為其中一個欄位得到不同的值。見附圖:

在此處輸入圖像描述

任何想法這是如何發生的?該表是聚集的,具有 pk 和唯一索引。

創建視圖時,它會綁定到執行所需的元數據。

注意: https ://msdn.microsoft.com/en-us/library/ms187821.aspx

這就是說sp_refreshview:“更新指定的非模式綁定視圖的元數據。由於視圖所依賴的基礎對象的更改,視圖的持久元數據可能會變得過時。”

過時的元數據綁定會導致令人驚訝的“錯誤”結果。使用模式綁定視圖是避免該問題的一種方法。

閱讀 Aaron Bertrand 發布的連結:

引用自:https://dba.stackexchange.com/questions/97952