0

ライブ MSSQL サーバーからローカル サーバーにデータベースをコピーしたところ、正しくログインできました。しかし、ストアド プロシージャを呼び出すときに、Asp.Net アプリケーションが SP が存在しないことを明確に示しているという問題があります。

Windows 認証を使用していますが、資格情報を使用していたサーバーではこれが問題になる可能性がありますか?

また、すべての SP の名前には、私のオンライン ユーザー名が付けられていますusername.StoredProcedurenName

私は何時間もこれを修正しようとしてきました。

SQL Management Studio から SP を実行しようとすると動作することに気付きましたが、次のように SP にユーザー名が追加されます。

USE [DBNAME]
GO

DECLARE @return_value int

EXEC    @return_value = [username].[SPNAME]

SELECT  'Return Value' = @return_value

GO

ユーザー名を削除すると、同じことが表示されます (SP が見つかりません)。どうすればこれを回避できますか?

4

2 に答える 2

1

スキーマを指定せずにストアド プロシージャを呼び出していると思われます。アカウントが構成されている既定のスキーマ (通常は dbo) にないストアド プロシージャを呼び出す (またはテーブル、ビューなどにアクセスする) 場合は、以下の sql コマンドのようにスキーマを明示的に含める必要があります。

SqlCommand cmd  = new SqlCommand("username.StoredProcedurenName", mySqlConnection);
于 2013-06-10T23:17:16.597 に答える