ビューが依存するテーブルにカラムを追加すると、名前付きフィールドの表示に非常に予期しない影響があります。テーブルにカラムを追加すると、ビューのsqlが変更されます
SQL:他の人々のコードは、テーブルAccessUserに動的な追加列を行うとき
SELECT dbo.AccessCustomFieldDepartment.AccessCustomFieldDepartmentID, dbo.AccessCustomFieldDepartment.AccessCustomField_StoreID,
dbo.AccessCustomFieldDepartment.AccessCustomField_ShopOwner, dbo.AccessCustomFieldDepartment.AccessCustomField_CVRnumber,
dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToWed, dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToThu,
dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToFri, dbo.AccessCustomFieldDepartment.AccessCustomField_OpenMonToTue,
--..
--a bunch of other fields
--..
dbo.AccessUser.AccessUserAddress, dbo.AccessUser.AccessUserAddress2, dbo.AccessUser.AccessUserZip, dbo.AccessUser.AccessUserCity,
dbo.AccessUser.AccessUserCountry, dbo.AccessUser.AccessUserWeb
FROM dbo.AccessUser INNER JOIN
dbo.AccessCustomFieldDepartment ON dbo.AccessUser.AccessUserID = dbo.AccessCustomFieldDepartment.AccessCustomFieldDepartmentID
、サーバーか何かは、ビューのSQLを変更します!
EG:
dbo.AccessUser.AccessUserCountry, dbo.AccessUser.AccessUserWeb
がこの大幅F * *は*データの私の結果発表をアップしね
dbo.AccessUser.AccessUserCountry AS AccessUserCity,
dbo.AccessUser.AccessUserWeb AS AccessUserCountry
に変更されます....そのビューを維持しようとするように各列の位置。
この列を削除すると、SQLが元の状態に戻されます。
そこで質問です:
- 何が起こっていますか?それはサーバーですか? CMSの機能 ソフトウェア(フィールドの追加機能がある場合)
- SQLステートメントを100%スタティックと見なすためにビューを設定できますか?次のコマンドを実行ビューまたはプロシージャを再コンパイルする
よろしく、
スティーン
DBMSとは何ですか?アクセス?リンクテーブルの有無にかかわらず?一般的には、自動的に起きるはずのビューを再結合することです。 SQL Serverのsp_recompile。また、テーブルの最後に列を追加しないでください。途中で追加すると問題が発生し、ビュー内では*を使用しないでください。 – Ben
[DDLトリガ](http://msdn.microsoft.com/en-us/library/ms175941.aspx)、おそらく? –
コメントありがとうございます。 @Ben:MS-SQLサーバー2008R2。私はちょうどCMSの既存のテーブルからデータを取得するための基本ビューを作成しました。列の追加を制御できません。すべての列名を具体的に述べてきたので、なぜ私はそのチャージを見るのに驚いたのですか。まだ回避する方法を見つけるのが好きですが、ビューを使用しないで実行するオプションがあります... – Steen