データベースのビューを反映したものではありませんが、データのunderyingテーブル

StackOverflow https://stackoverflow.com/questions/1013711

  •  06-07-2019
  •  | 
  •  

質問

入力:

お客様の債権のみのアプリケーション(.結合で、照会のためのデータのデータを返しまからのお客様にデータテーブル。

いうものがあり、様々な理由でと全く異なるところがございます。私の目的はこれを解決するためにここにすることによるものであり、願いを経験しDBAsデータベースのスキーマとデータの開発者の場合:

することは可能でビューを見るデータに一致"しない、元のテーブル(s)?

  • 何がその原因/理由です。
  • では、UPDATEステートメント、ビューが将来の選択に戻る'更新'データの場合、テーブルはありませんか?

原因と(西村:ありがとうござい人にとっての問題-マーク):

  1. その理由は二つあり、お取引い説明は、お客様の現場は混乱していた。
  2. 配下のテーブルした改ざん、デニースザメネースパークませんでしたリフレッシュを使用sp_refreshview)
  3. 別のユーザが接見ることができる異なるデータにアクセス権?
  4. プログラマはエラー:間違ったテーブル/コラム、間違ったフィルタ(all-in-oneこちら)
  5. 破壊:DBCC CHECKDBべき
  6. ができ SELECT ... FOR UPDATE この ???
  7. ? __

何が本当に起こった(回答):

カラム位置を変更したときにテーブル:うお客様のランキング上位のデータベースへのアクセスコンサルタントのためのデータベースの利用を解析するこのガ変更の順序はカラムの数 監査 分野の開始時にテーブル利用の場合 SELECT * ... 条項.

を使用 dbGhost データベースのスキーマの比較では、スキーマのバックアップを取り数日前に問題が登場し、および列の位置の違いが見つかりました。

ようになったもの次回も関連するプログラミングが問題なの政治の話をしますか。

そのために sp_refreshview したソリューションとなります。私た一歩を探しの方より問題です。ございます。

役に立ちましたか?

解決

り替えます。

その原因:

  1. のニーズに身も心もリフレッシュまたは再コンパイル.の場合のソースカラム定義変更に(またはによりますが、"*"ができ起きる。コsp_RefreshView.もう足の意見は機能(データ)を呼びかけられています。

  2. の景色は違うがいいと思います。その間違ったテーブルやビュー。

  3. の変換、データ、思わぬところで役に立ちました。しかしないかのような期待される。

  4. のビューが異なるサブセットのデータより期待される。再ードを動作させることができ、かないように思いのまま。

  5. その間違ったデータベースやログオン/ユーザー本人の原因となるのは変です。

他のヒント

できれば、元のテーブルが変更され、sp_refreshviewれていないた見解に対抗するためには、そのビューで欠列かったテーブルに追加されます。

どう読む どのように、ビューして、元のテーブルの変化を利用sp_refreshview

を作成でき意見をロックヒントという用することで知られている汚れを読み込みます。またアクセスした際に、テーブルに直接ではないか、ということを仲間とロヒントになってもらうために汚れを読みとなります。

もうひとつの可能性とユーザはいなかったのでしょうか理解できるデータを取ります。データの読み3:00に見えない場合、同じデータが見えます3:30のテーブルわけありの変化を知ることができるからです。

数の可能性

  • おります。NETアプリケーションがないことを指すようにと思いを指す.例えば、この指摘テストサーバーによる間違い

  • た場合のviewがインデックスは、floatまたは数値の値が正しく表示されないことから、配下のクエリを四捨五入による

  • のANSI_NULLS設定は特定のビューが作成されます。がある場合には設定中に選択s)基本となるテーブルの原因になりますの相違ある種の問合せ

  • 配下のテーブルの構造変更になり、見れない場リフレッシュ(特に問題を使用すれば"選択*")

私は編集する場合と思うのです。

編集:こちらの例のどのようにANSI_NULLS設定スローされる可能性がありますoff果

SET ANSI_NULLS ON

DECLARE
     @i     INT,
     @j     INT

SET @i = NULL
SET @j = 1

SELECT
     CASE WHEN @i <> @j THEN 'Not Equal' ELSE 'Equal' END

SET ANSI_NULLS OFF

SELECT
     CASE WHEN @i <> @j THEN 'Not Equal' ELSE 'Equal' END

その結果をお受けてください:

Equal

Not Equal

とのできない 変換 のデータ、技術的にできれば、腐敗が発生します。ビューのデータを取得しまから指数テーブルを取得します他のい。から集)について。A DBCC CHECKDBきる問題です。

が人為的な誤りがあがります。うに異なるテーブル、ビュー、または異なる記録です。

だがその他のもの

1) Derived attributes are pulling from wrong tables in the view
2) The view is using incorrect tables
3) incorrect or missing joins in the view

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top