2011-08-04 15 views
0

Viewとそれに対応するプロダクションテーブルの比較を行うために、次のコードを記述しました。私は効率のためにこのコードを書くためのよりよい方法を探しています、どんなポインタも非常に高く評価されるでしょう。このコードは私に望ましい結果をもたらしました。今は、新しいアプローチや概念を学ぶことの単なるポイントです。Transact SQL:ビューのテーブルへの同期

http://pastebin.com/pSTdCx3L

+2

あなたのコードをリファクタリングすることに関する広範な意見を求めることは、回答を得る最良の方法ではありません。あなたが不幸なコードの特定の場所を指摘し、理由を説明し、それらを改善しようとしたことなどを考えてください... – Yuck

+1

それ以外の場合は、[codereview.stackexchange.com](http:/codeview.stackexchange.com/)、これはコードを拡張するためのより適切な場所です。 (StackOverflowは、コードの問題を解決することです。) –

+0

効率は適切です。 Lordy、何が残忍なの?次回は、*の後ではなく*の前にSO *をつけてください。それから、私たちはあなたの問題を解決するのを助けることができます* – gbn

答えて

2

あなたのビューWITH SCHEMABINDINGを宣言する場合は、このオーバーヘッドを必要としません。

私はいつも使っています。ビュー(またはudf)で使用されるベーステーブルへの変更を許可しません。 また、列を修飾し、2つの部分オブジェクト名を使用するようにします。

SCHEMABINDING

は、基礎となるテーブルまたはテーブルのスキーマにビューをバインド。 SCHEMABINDINGが指定されている場合、ビュー定義に影響するように基本表を変更することはできません。ビューの定義自体は、最初に変更または削除して、変更するテーブルの依存関係を削除する必要があります。

あなたは、私は非常に面白がっていますレビューを求め、けれども(読み: "facepalmを ")によって:

  • あなたダイナミックALTER VIEWあなただけの" sp_refreshview" またはsp_refreshsqlmodule
  • を実行することができますマッピングを表示する1対1のテーブル。どうして?それは価値を追加しません。
関連する問題