SQL Server ExpressデータベースにtestSP
というストアドプロシージャがあります。SQL Serverでストアドプロシージャを実行
私は
exec [db_owner].[testSP]
を使用して、それを実行することができていますが、私はexec testSP
を使用している場合、それは動作しません。
この原因は何ですか?
この動作をしない他のデータベースがあります。
ありがとうございました。
SQL Server ExpressデータベースにtestSP
というストアドプロシージャがあります。SQL Serverでストアドプロシージャを実行
私は
exec [db_owner].[testSP]
を使用して、それを実行することができていますが、私はexec testSP
を使用している場合、それは動作しません。
この原因は何ですか?
この動作をしない他のデータベースがあります。
ありがとうございました。
ユーザーはdbo
をデフォルトスキーマとして設定しています。存在しない
exec [dbo].[testSP]
:それはあなたが
exec testSP
を実行したときに
それはdbo
あるデフォルトのスキーマを使用していますので、これを実行しているかなり普通のことです。
あなたは
exec [db_owner].[testSP]
を実行すると、それは見つけると、ストアドプロシージャ
は、私は背景を知らないが、私は、誰かが間違っ/誤って作成され、db_owner
すべてのdbは動作していますが、私はオブジェクトがdboスキーマにあると推測します。あるいは、ユーザーは正しいスキーマを使用するように設定されています。あなたがこれを実行するdb_ownerのようにユーザーのデフォルトのスキーマを変更したい場合は
ALTER SCHEMA dbo TRANSFER [db_owner].[testSP];
::オブジェクトブラウザで見て、あなたがこれを実行するdbo
スキーマにストアドプロシージャを移動したい場合は
を比較行く
ALTER USER [youruser] WITH DEFAULT_SCHEMA = db_owner;
私はdb_ownerスキーマは事故だと思っています。
はい、このストアドプロシージャのカスタムスキーマを作成した '[db_owner]。[testSP]'でプロシージャを作成しました。私は1時間前にそれを修正しました。あなたの入力ニックネーに感謝します。 – Zee
固定された音が聞こえます。私の答えが役に立ったら、それにチェックを入れてください。 –
ユーザーのデフォルトスキーマが異なる可能性があります。 'SELECT SCHEMA_NAME()'を実行するとどうなるでしょうか? PS。あなたが実際のエラーを投稿するなら、それは本当に役立ちます。私たちの推測を止める。そのコマンドの –
はdboを返します – Zee
はい。 'db_owner'は' dbo'とは異なります。実際のエラーメッセージは何ですか?あなたのユーザはデフォルトスキーマとしてdboを使用するように設定されていますので、db_ownerスキーマで何かを実行するには、 –