■SI Object Browser 掲示板


ユーザの皆様、開発者、サポート担当者の交流のための掲示板です!

ユーザーの皆様同士で教え合ったりもできる交流の場にしたいと思っていますので、相互協力をよろしくお願いします。
なお、過去に同じようなQ&Aがあるケースも多いので、投稿前にキーワード検索してみてください。

discussion
※各投稿のカラーは対象となる製品に対応しています。【…OB …OBER …全般 …その他】
※ライセンスに関するお問合せにつきましては、お問い合わせページよりご連絡いただきますようお願いいたします。
※誹謗中傷や公序良俗に反する書き込みはご遠慮ください。運営側の判断によりメッセージを削除する場合があります。
※環境依存や技術的調査が必要な問題については掲示板上ではお答えしかねます。ご了承ください。
SQL Server 2005 へのフォワード時のコメント 2008/04/10 14:41 OBER 1
OBER 4.1.0.0 での SQL Server 2005 への
フォワードエンジニアリングに関する質問です。

テーブルや列に説明として「定義」情報を付加していると
以下のようなスクリプト処理が実行されると思います。

exec sp_addextendedproperty 'MS_Description', '説明文', 'user', 'TEST_SCHEMA', 'table', 'TEST_TABLE', 'column', 'TEST_COL'

ここで、「'user'」の記述が問題で

《エラー》オブジェクトが無効です。拡張プロパティが 'TEST_SCHEMA.TEST_TABLE.TEST_COL' で許可されていないか、オブジェクトが存在しません。

とのエラーが発生します。

上のスクリプトの「'user'」の部分を「'schema'」と
すると問題なく実行できるスクリプトとなるのですが、
OBER4 は SQL Server 2005 に完全対応出来ているので
しょうか?2005から導入されたスキーマの概念に正しく
対応されているのか、またはこちらの操作に問題が
あるのか、ご確認いただければ幸いです。

ちなみに MSDN の以下のドキュメントから引用すると
http://msdn2.microsoft.com/ja-jp/library/ms180047.aspx

「sp_addextendedproperty」

重要 :
レベル 0 のオブジェクトの種類である USER および TYPE は、SQL Server の今後のバージョンで削除される予定です。新しい開発作業では、これらの機能の使用を避け、現在これらの機能を使用しているアプリケーションは修正するようにしてください。USER の代わりに、レベル 0 の種類として SCHEMA を使用してください。TYPE については、レベル 0 の種類として SCHEMA、レベル 1 の種類として TYPE を使用してください。

■ スキーマとユーザー
以前のバージョンの SQL Server では、ユーザーがテーブル、ビュー、トリガなどのデータベース オブジェクトを所有していました。このため、これらのオブジェクトのいずれかに拡張プロパティを追加し、レベル 0 の種類としてユーザー名を指定することは、許可されていました。ただし、SQL Server 2005 では、データベース オブジェクトはスキーマに含まれています。これらのオブジェクトは、スキーマを所有しているユーザーから独立しています。
こんにちは
山田@SIです。

ご意見ありがとうございます。
現状OBERではあらゆる場合でも「user」としてSQL文を作成しております。
この件に関しましては、今後のバージョンアップにて対応を
検討してまいりますのでよろしくお願いいたします。

なお、2005の場合でも、この部分が「user」であっても
SQL自体は実行されるようです。
つきましては二点後確認をお願いしたいのですがよろしいでしょうか。

・エンティティで入力したスキーマ名は存在いたしますでしょうか。
・フォワードオプション「スキーマ名を出力する」
 が有効になっておりますでしょうか。

お手数をお掛けしてしまい、大変申し訳ございませんが、
何卒よろしくお願いいたします。