3

名前を変更したい不適切な名前の列があります。列名は、その名前が誤解を招くため、隠れた「落とし穴」の責任です。

問題は、その列を使用する既存のプログラムがあることです。既存のプログラムが古い名前を使用してテーブルをクエリ (更新または挿入なし) できるように、DB で名前を変更し、DB に何らかのエイリアスを作成する方法はありますか?

4

1 に答える 1

5

列を追加する非常に基本的なビューを作成できます。

CREATE VIEW dbo.tablename_v
AS
  SELECT a, oldname, newname = oldname FROM ...

または、次のことだけが本当に必要な場合は、計算列を追加できますSELECT

ALTER TABLE dbo.tablename ADD newname AS CONVERT(datatype, oldname);

どちらの場合も更新可能性が問題になる可能性があり、INSTEAD OF トリガーはそれらを回避するのに役立つ場合があることに注意してください。

ただし、スキーマとコードを修正するのが理想的です。いくつかのツール ( SQL Server Data ToolsRed-Gate の SQL Refactorなど)を使用してスマートな名前変更を実行することもできますが、プログラムがコンパイル済みコード内の列を参照している場合、これはより複雑になります。(ストアド プロシージャを使用する理由の 1 つは、アプリに SQL を埋め込むよりも優れた選択である可能性があります。)

于 2012-07-16T15:15:13.987 に答える