SQL Server VIEW结果与SELECT不同

Mik*_*ike 4 sql sql-server sql-server-2005 view

我创建了以下简单视图:

CREATE VIEW cs.MyTestPO AS
SELECT ttdpur401100.t_orno
, ttdpur401100.t_item
, ttcibd001100.t_dsca
FROM ttdpur401100 
    JOIN ttcibd001100 ON ttcibd001100.t_item = ttdpur401100.t_item
Run Code Online (Sandbox Code Playgroud)

然后SELECT * FROM cs.MyTestPO返回276376行

如果我自己运行select语句

SELECT ttdpur401100.t_orno
, ttdpur401100.t_item
, ttcibd001100.t_dsca
FROM ttdpur401100 
     JOIN ttcibd001100 ON ttcibd001100.t_item = ttdpur401100.t_item
Run Code Online (Sandbox Code Playgroud)

它返回277488行

任何人都可以建议为什么视图缺少SELECT语句返回的1112行。

Tim*_*ner 6

如果从视图中选择和临时运行其定义之间确实存在差异,我将:

  • 运行sp_refreshview
  • 运行dbcc checkdb
  • 拖放并重新创建视图
  • 确保将SQL修补到最新的Service Pack
  • ~~~~~ MVP可能会想到的许多其他步骤~~~~~
  • 重新启动SQL Server实例(现在就可以访问)了吗?
  • 重新启动服务器?
  • 支持服务联系(这将变得越来越严重)。

不过,在执行任何计划之前,先看看执行计划,统计信息io等是否存在差异是很有趣的。