5

私は現在、基本的に別のデータベースの同じ名前のテーブルから選択した一連のビューで構成される「ファサード」データベースを作成している状況にあります。実際のコードを最小限に変更するだけで、アプリケーションをファサード データベースに再指定できるという考え方です。

これは、挿入、更新、削除、および明らかに選択に対してはうまくいくようです。残念ながら、一部のストアド プロシージャでは TRUNCATE TABLE が使用されています。これは非常に限定的であり、現在の計画では、そのコードを「TRUNCATE」ストアド プロシージャの呼び出しに置き換えるだけで、テーブルの切り捨てを実際にバックグラウンドで処理します。ただし、先に進む前に、これを処理する方法について他に提案があるかどうかを確認したかった.

提案やアドバイスをありがとう!

4

1 に答える 1

7

TRUNCATE TABLE (Transact-SQL)はビューではなくテーブルでのみ機能するため、(特別なストアド プロシージャを使用する) アプローチが唯一の方法です。ビューでDELETEが機能しているため、DELETEよりもTRUNCATEを使用する特定の理由(より高速で、システムおよびトランザクションログリソースの使用が少ない)があると思います。DELETE トリガーを使用して何かを実行し、切り捨てを使用してすべての行が削除されているかどうかを検出できる場合があります。ストアドプロシージャを使用してアプローチするのが最もクリーンな方法だと思います。

于 2010-05-24T15:36:07.567 に答える