0

現在、MSSQL2005データベースに問題があります。最近、WindowsServer2003から2008への移行が行われました。SQLServerは2005年のままです。SQLServerManagementStudioを使用して作業しています。

データベース内のすべてのテーブルは、[SCHEMA]。[TABLE_NAME]の形式に従います。

SQLを入力すると:

SELECT * FROM [table_name]

エラーメッセージが表示されます:無効なオブジェクト名'[table_name]'。

入力した場合:

SELECT * FROM [schema].[table_name]

これは正常に機能します。データベースにログインするユーザー名は、すべてのテーブル名の前に付加されるスキーマを所有します。

問題は、データベースからデータをエクスポートするソフトウェアを持っているサードパーティ企業があることです。2つの会社がエクスポーターを実行しようとしましたが、「無効なオブジェクト名」というエラーが発生します。ソフトウェアは、スキーマを所有するユーザー名でログインしています。

私の質問は、インターネットで見つけた質問とまったく同じです: http ://www.sqlteam.com/forums/topic.asp?TOPIC_ID=99802

しかし、その質問に対する答えは、実際の文章ではなくキーワードでいっぱいになっているようで、非常に理解しにくいものです。

誰か助けていただければ幸いです。

どうもありがとう

フィル

4

1 に答える 1

1

サードパーティのユーザー名のデフォルトスキーマを、プレフィックスなしの参照が指すスキーマに設定します。

ALTER USER foo WITH DEFAULT_SCHEMA = [bar];

(これは、スキーマを所有することとは異なります。)

そして、ソフトウェアを正しく書くように彼らに言いなさい。SQL Serverでは、常にを使用する場合でも、常にスキーマ名を指定する必要がありますdbo

于 2012-09-06T14:57:17.677 に答える