- ベストアンサー
SQLServerでフィールドの名称の変更を
お世話になっております。 SQLServer2000を使用しております。 あるフィールドの名称を変更したいと考えております。 SQL文にて変更しようと思っていたのですが、 参考文献が見つからず、とまっております。 皆様にご教授をいただければと思っております。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その後、どうされましたでしょうか? 項目名を変更したまま、例の警告もでたままでしょうか? もし問題があり、その他のDBオブジェクトの修正が困難であれば、再度、sp_renameにて元の名前に戻してあげる・・・ということで、とりあえず振り出しに戻ってしまいますが、問題があるのであれば、回避できるかと思います。
その他の回答 (2)
- itachisan
- ベストアンサー率81% (9/11)
捕捉です・・・ >「注意 : オブジェクト名の一部の変更により、スク >リプトおよびストアド プロシージャが中断されまし >た。」といったメッセージが表示されているのすが、 >問題はないのでしょうか? ええと、既に運用中なのでしょうか?・・・ そのテーブル(リネームした項目のある)を利用する他のDBオブジェクト(ストアド、ビューなど・・・)が、今回変更した項目を利用していたら、問題があります。 つまりは、自動で関連するDBオブジェクトを更新してくれているわけではないので、それらについては手動で一々今回修正した項目名へ直してあげないといけません。 そのための警告や、エラーが表示されたのではないかと思われます。
- itachisan
- ベストアンサー率81% (9/11)
Transact-SQLにて、 ■列名を変更する hoge_table テーブルの main_title 列の名前を title に変更します。 EXEC sp_rename 'hoge_table.[main_title]', 'title', 'COLUMN' ※sp_renameは、この例のほか、テーブル名の変更や、ビュー、ストアド、トリガ名の変更などが可能です。 詳しくは、Transact-SQLのリファレンス等をお調べください。
お礼
ご回答いただきありがとうございます。 ご教授いただきました情報を元に 行ってみましたところ、フィールド名の変更を うまく行うことができました。 ただ、クエリを実行した際に、 「注意 : オブジェクト名の一部の変更により、スクリプトおよびストアド プロシージャが中断されました。」 といったメッセージが表示されているのすが、 問題はないのでしょうか?
お礼
たびたびのご教授、ありがとうございます。 いただいたアドバイスのとおり、 フィールド名を変更することにより、 影響する部分が広範囲ございました。 結局、フィールドを変更せずこのまま運用するという 結論にいたっております。 いただいたアドバイスも次回、活用させていただきたいと思います。 また、警告が出る場合は、 ・別名のフィールドを作成し元フィールドの内容をコピー ・元フィールドを削除 ・元フィールド名を新たに作成し、別名フィールドの内容をコピー、 といった対応を考えております。 大変お世話になりました。 厚くお礼申し上げます。