最近SQL Server 2000データベースからSQL Server 2005データベースにデータベースをインポートしました。私は以前のデータベースで以前設定したものと同じログイン資格と所有者権限であると思ったものを設定しました。ストアドプロシージャエラーが見つかりません
私が作業しているすべてのコードベースには、ストアドプロシージャ名で単純にリストされたプロシージャが格納されています。
適切なログインが作成されていることを確認するために、アプリケーションで使用している接続情報(SQL Server Management Studioのユーザー名「licensemgr」とそれに関連付けられているパスワード)を使用してログインしています。私はすべてのテーブル、ストアドプロシージャなどを見ることができます...私は組み合わせてログインすると私のデータベースに。ストアドプロシージャを実行しようとすると、SQL Server Management Studioは次の構文を使用して実行します。
EXEC: @return_value = [licensemgr].[Stored_Procedure_Name]
これはエラーなく実行されます。
[licensemgr]を削除しようとした場合。 [Stored_Procedure_Name]の前から、「ストアドプロシージャが見つかりません:Stored_Procedure_Name」というエラーが表示されます。これは、このデータベースからアプリケーションを実行しているときと同じエラーです。アプリケーションのストアドプロシージャ呼び出しを「licensemgr」に変更しました。ストアドプロシージャ名の前に、問題を修正するように見えましたが、アプリケーション内のストアドプロシージャコールごとにその処理を行いたくありません。したがって、どのタイプのセットアップ/アクセス許可の種類の問題が私のSQL Serverインスタンスに存在しない可能性がありますので、データベースにlicensemgrとしてログインしても、スキーマ「licensemgr」にあるストアドプロシージャは表示されません。
SQL Server 2005では、スキーマ名と所有権が分離されているため、ストアドプロシージャごとにスキーマ名を指定する必要があるということを明確にしています。 これは私のコードを変更するのに気になりませんが、私はちょうど私があなたを正しく理解していることを確認したいと思っています。 – Kivus