4

次の簡単なビューを作成しました。

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

次に、SELECT * FROM cs.MyTestPO276376 行を返します

selectステートメントを単独で実行すると

SELECT ttdpur401100.t_orno
, ttdpur401100.t_item
, ttcibd001100.t_dsca
FROM ttdpur401100 
     JOIN ttcibd001100 ON ttcibd001100.t_item = ttdpur401100.t_item

277488行を返します

ビューに SELECT ステートメントが返す 1112 行がない理由を誰でも提案できますか。

4

3 に答える 3

7

ビューから選択することとその定義をアドホックに実行することに本当に違いがある場合、私は次のようにします。

  • sp_refreshview を実行します
  • dbcc checkdbを実行します。
  • ビューをドロップして再作成する
  • SQL が最新のサービス パックにパッチされていることを確認します。
  • ~~~~~おそらくMVPが考える他の多くのステップがここにある~~~~~
  • SQL Server インスタンスを再起動しますか (今、到達し始めています)?
  • サーバーを再起動しますか?
  • サポート サービスに連絡してください(これは深刻になる可能性があります)。

ただし、これを行う前に、実行計画、統計情報などに違いがあるかどうかを確認することは興味深いでしょう。

于 2013-02-11T22:29:23.980 に答える
1

セット間の違いを確認するには、試してください

SELECT d
d.t_orno    , d.t_item    , c.t_dsca
FROM ttdpur401100 d
   inner  JOIN ttcibd001100 c ON 
c.t_item = d.t_item left outer join
cs.MyTestPO t on d.t_item = t.t_item
where
t.t_item is null
于 2013-02-11T21:39:54.970 に答える