0
  • SQL Server 2008
  • Visio Pro 2003
  • アクセス2003
  • 使用されるシステムDSN

SQL Serverデータベースをリバースエンジニアリングする必要がありますが、そうしようとすると[ビュー]ボックスが「グレー表示」になります(保存されたプロシージャも「グレー表示」になりますが、この段階では必要ありません)。ODBC経由で接続する権限を持つSQLServerアカウントを使用していsys_adminます(Visioはネイティブコネクタを認識しないため、ODBCを使用する必要があります。十分に文書化された欠陥であり、ローカル管理者もいるため、信頼できる接続を使用できません。権利と当社は、クロスマシン接続でローカル管理者を認識することを拒否します)。これは、ODBCSQLServerタイプの接続を使用しています。ネイティブクライアントタイプを使用するようにODBC接続を変更すると、ストアドプロシージャを選択できますが、残念ながら、ビューボックスを選択することはできません。

プレーンSQLServerタイプのODBCを使用してAccessに接続し、リンクできるものを確認しました。これにより、システムテーブルとビューを含むすべてのテーブル、ビューを表示でき、sys_admin権限がODBCを通じて保持されていることがわかります。繋がり。

ここで何かが足りませんか?SOとGoogleでの多くの検索では、Visioが特定のオブジェクトを表示できない理由(管理者アクセス権があるためセキュリティ権限を無視)については何もわかりませんでした。Accessを介してそれらを「表示」できると、少しイライラします。同じタイプのODBC接続を利用する両方の製品で、同じ制限と機能が発生すると思います。

「リバースエンジニアリング」機能を使用してSQLServerのビューをVisioドキュメントに配置できるようにするには、Visioを使用するにはどうすればよいですか。私は過去に他のサーバーでこれを行ったことがあります。

4

3 に答える 3

0

tl;dr

OBDC ドライバーを使用しないでください。Access Visio ドライバーを使用してください。

なんで?

SOでここにあるように:

古いスレッドですが、現在も問題が残っています... ODBC Generic Driver の使用は機能しましたが、リバース エンジニアリング ツールはトリガー、チェック句、ビュー、およびストアド プロシージャを見逃していることがわかりました。代わりに Access Visio Driver を指定することで、少なくとも Check Clauses と Views を回復できます。

とはいえ、一般的に言って、これは Microsoft の関連チームを代表して、彼らの顧客に対する敬意がひどく欠けていることを示していると言わざるを得ません。昨年、Visual Studio 2010 にアップグレードしたときに非常によく似た経験がありましたが、SSIS プロジェクトが開かなくなったことを発見しただけでした... このスレッドからわかるように、MS はそれほど気にしませんでした。

于 2016-09-13T01:26:06.843 に答える
-1

テーブル間の関係を文書化または図式化できるリバース エンジニアリング ツールが、クエリが保存されているという事実と関係があると考える理由は本当にありませんか? ビューは保存された SQL クエリにすぎず、テーブル間の関係とはまったく関係ありません。

保存された SQL クエリ (別名ビュー) は、テーブル設計構造ではありません。ビューの作成またはビューの削除は、データベース構造およびデータベース内に構築する関係に関して、いかなる重要な方法においても何の関係もありません。

結果として、控えめに見積もっても 1 兆の Web ページが存在するにもかかわらず、Google または Bing の検索結果があなたの質問に対して絶対に結果をもたらさない理由.

言い換えれば、データベース ER ダイアグラムに保存された SQL クエリの束が含まれているというあなたの仮定は、あなたの側の完全で完全な誤りです。

そのような文書化ツールが存在するかどうかを尋ねているかもしれませんが、実際には、この主題に関する情報が見つからない理由を尋ねました。単純な答えは、地球上に他の誰もいないためです。あなたが作っています。

Access 経由でそれらを「見る」ことができるようになったことで、私は少しイライラしました。

また、MS Access などのアプリケーション開発ツールでこのようなビューを利用できる理由を尋ねて、さらに混乱を招く理由がよくわかりません。

Access を使用してこれらのビューを表示できる理由についての簡単な答えは、Access がリバース エンジニアリング ツールではないためです。実際、Access はデータベース ドキュメント ツールでもありません。

Access は、アプリケーションを構築し、指定されたデータベース システムに接続できるソフトウェア開発ツールです。したがって、MS Access は、製品に同梱されているネイティブ データベース エンジン (JET または現在は ACE と呼ばれる) などのデータベースを使用できます。Access は、Oracle や SQL サーバーのようなものにも接続できます。

ツールは特定のデータベース エンジンからのデータを消費するように設計されているため、これらすべてのケースで間違いなく Access は SQL ビューに接続できます。ただし、特定のデータベース システムからデータを取得することは、リバース エンジニアリング ツールを使用してテーブル間の関係を確認することとは大きく異なるプロセスです。

データベース システムがテーブル間に何らかの関係を持っているという事実、またはダイアグラムを作成したい関係を強制したという事実は、ある場所に保存された一連の単純な SQL クエリを文書化するプロセスとはまったく関係ありません。したがって、すべてのビューは実際には保存された SQL です。SQL をコード、テキスト ファイル、または Access の場合は選択クエリと呼ばれるもので保存できます。SQL サーバーの場合は、SQL をビューとして保存できます。

ただし、保存された SQL クエリの束を見ることは、データベース内のテーブル間の関係の存在を文書化することとはまったく別の問題です。ビューの作成、ビューの削除は、テーブル間の関係にゼロの影響を与えます。

実際、MS Access テーブル ダイアグラム ツールには、製品に含まれているテーブル リレーションシップ ダイアグラム ツールにビューを含める機能がないことがわかります。したがって、実際、ほとんどの開発ツールには、全体のテーブル ER ダイアグラムにビューが含まれていません。

結局のところ、Visio のようなものが保存された SQL クエリを単純に消費して利用できない理由として考えられるのは、設計上、そのようなツールがその目的をまったく意図していないということです。

于 2012-11-19T20:36:32.810 に答える