3

最近、データを失わずに SQL Server 2000 のテーブル (および列と FK/PK 制約) の名前を変更する必要がありました。このアクションを実行するための明確な DDL T-SQL ステートメントがないように見えたので、sp_rename を使用してオブジェクト名を直接いじりました。

これが問題の唯一の解決策でしたか? (それ以外は、そもそもテーブルに正しい名前を付けること以外に-doh!)

4

4 に答える 4

13

sp_rename が正しい方法です。

EXEC sp_rename 'Old_TableName', 'New_TableName'
于 2008-10-02T09:52:22.750 に答える
2


EXEC sp_rename 'Old_TableName', 'New_TableName' は正常に動作しますが、「alter table old_name to new_name」のようなキーワードです

于 2010-06-15T08:24:50.083 に答える
0

テーブルの古いバージョンと新しいバージョンの両方で同時に作業できるソリューションがあります。これは、データがレプリケートされている場合、および/またはクライアント インターフェイスを介してアクセスされている場合に特に重要です (クライアント インターフェイスの古いバージョンは、古いテーブル名で引き続き機能します)。

  1. ALTER TABLE" " コマンドを使用して、テーブルの制約 (FK を含む) を変更します
  2. テーブル名やフィールド名は変更せず、次のようなビューを作成してください。

    SELECT oldTable.oldField1 as newField1, ...

    それを newTable として保存します (そして、要求された場合は、別のサーバーに配布します)


この方法では PK を変更できないことに注意してください。

于 2008-10-02T10:11:41.427 に答える
0

おそらく唯一ではありません: master データベースをいつでもいじって、そこでテーブル名を更新できると思いますが、これは非常にお勧めできません。

于 2008-10-02T09:55:16.317 に答える