SQL Server 2005を実行しています。ソフトウェアはデータベースと統合されています。残念ながら、ストアドプロシージャを使用するのではなく、直接SQLクエリを作成することを選択しました。これでデータベーススキームが変更されました。問題のクエリはもはや有効ではありません。SQL Serverが実行する前に、古いSQLクエリにパッチを適用しますか?
実行時にT-SQLをSQL Serverにパッチすることは可能ですか?
など。 SQL Serverが特定のデータベースに対してSELECT A FROM InvalidTable
を取得すると、クエリは実行される直前にSELECT A FROM ValidTable
に変換されます。
編集:DepartmentID
は別のテーブルに移動した
SELECT * FROM DataTable c JOIN Users u ON u.UserName = @P0 AND c.DepartmentID = b2.DepartmentID WHERE c.Status = 0
: これが問題のクエリです!
'InvalidTable'という名前のビューを作成し、' Select NewColumnName as ValidTable'を作成することができます。 –
ビューを使って離れたテーブルを置き換えることを検討してください。そうすれば、無効なSQLはすべてビューの存在により有効になります。 – xQbert
ええと、ストアドプロシージャの代わりにSQL(またはLinqなど)を使用することは、必ずしも不合理ではありません。私の批判は、あなたがコントロールできないアプリケーションによってデータベースにアクセスすることであり、そのために問題が発生した原因であるソースにはアクセスできません。 (私はそれがあなたの関与に先立つと仮定しよう!) – Murph