クエリまたはストアドプロシージャを使用してテーブルを削除して追加する方法はありますか?mssql 2008 r2 - クエリやストアドプロシージャを使用してテーブルを削除し、テーブルに追加する方法
基本的に私は、テーブルにはAと呼ばれ、それがストアドプロシージャdepency私はCと呼ばれる新しいテーブルを作成し、Cにストアドプロシージャdepencyを追加し、A.
クエリまたはストアドプロシージャを使用してテーブルを削除して追加する方法はありますか?mssql 2008 r2 - クエリやストアドプロシージャを使用してテーブルを削除し、テーブルに追加する方法
基本的に私は、テーブルにはAと呼ばれ、それがストアドプロシージャdepency私はCと呼ばれる新しいテーブルを作成し、Cにストアドプロシージャdepencyを追加し、A.
ストアドプロシージャを変更せずにこれを実行しようとしていますか?技術的には、SYNONYM
(DROP TABLE dbo.A; CREATE SYNONYM dbo.A FOR dbo.C;
)を使用してこれを行うことができます - あなたがSQL Server 2005以上を使用していると仮定してください(あなたのバージョンを指定してください) - これはスパゲティとカスケード参照の悪夢になります。
を削除したいB.
と呼ばれています持っていますあなたが話しているような依存関係は、独立して作成されていません。これは、ストアド・プロシージャ内の問合せの結果です。あなたは新しいテーブルを作成し、C
代わりのA
からSELECT
/INSERT
/UPDATE
/DELETE
にストアドプロシージャをリダイレクトする必要があります後にあなたが効果を持つように
。
私の問題は、何らかの理由で私のアーカイブテーブルが参照されていますが、私の新しいテーブルではありません(depencyはまだアーカイブテーブルにあります)。 – hidden
「参照中」とはどういう意味ですか?コードはSELECT FROM Aと言っていますが、プロシージャはCからデータを戻していますか?またはその逆? A、B、Cのシンプルさが誰にも誤解を与えないように、もっと具体的にするべきでしょう。 –
SQL Server 2000の場合、ビューを使用して間接参照を行うことはできますが、同じ問題が発生します。 –