2012-01-23 13 views
0

SQL Serverにストアドファンクションを作成しました。私は、コマンドテキストとvb.netからのような...vb.netからのSQLストアドファンクションコール

---- Returning error 
lobjCommand.CommandText="Select function_name(value1)" 

----- Executing properly without errors  
lobjCommand.CommandText="Select dbo.function_name(value1)" 

誰かがDBOがマジックをプレイし、まさにお勧めできますことを呼び出そうとすると...事前 で

おかげRupesh

答えて

1

dboは、おそらくデフォルトのスキーマです。それはDatabase Ownerの略です。

SQLクエリで関数を実行するときは、関数が属するスキーマを指定する必要があります。

2つの異なるスキーマに属するfunction_nameという名前の2つの異なる機能が存在しない場合は、スキーマに言及することなく、サーバーはあなたが呼び出している機能を知らないでしょう。

+0

おかげカートは、私はあなたの2つ目の 'セレクトDBOのようなクエリを使用することをお勧めします、我々は、SELECT文 – Rupesh

+1

を使用するよりも、他のvb.netからスカラー関数を実行する方法はあり参照してください。 。関数名(値1) '。私はこれを使用しても問題ありません。または、このクエリをストアドプロシージャに移動し、ストアドプロシージャを実行して値を取得することもできます。 – Curt

0

プレフィックスを使用しないと、SQL Serverエンジンは常にクエリを部分的に解析し、[dbo]を使用する前に、異なるユーザーと同じ名前のオブジェクトを検索します。ベストプラクティスを満たすだけでなく、パフォーマンスの不具合を回避してコードをスケーラブルにするために、プレフィックスメカニズムに従うことをお勧めします。

古い質問が尋ねたが、このlink

関連する問題