2011-11-18 8 views
5

をspecifingずにスカラー関数を実行し、私は私ドン場合のC#からこの関数を呼び出す必要がありますときに私は、私は構文今dbo.Function(arg)SQLサーバ - データベース名

を使用して、管理のスタジオから呼び出すことができる午前ユーザ定義のSQL関数を持っています**dbname**.dbo.Function(arg)を指定してください。SQLサーバーがこのユーザー定義関数を見つけられないというエラーが表示されます。 dbnameを指定せずにこれをどのように解決できますか?私はすでに、私はこれを配置する必要があります(どちらかのSQL Server 2005または2008を使用して)私がこのポイント:-)で述べた動作を再現することができないようだ」initial catalog = dbname"


を指定する接続文字列を使用してサーバーに接続します保留質問

+1

C#コードと厳密な例外を表示できますか? –

+2

アプリケーションで使用されているログインに関数の 'EXEC'パーミッションを与える必要があるかもしれません。 –

+0

@MartinSmith私は管理スタジオ(動作する場所)とC#コードの両方でWindows Autheticationを使用します。私が言ったように、dbname(例えばSELECT \t DATEPART(YEAR、Activitylogs.Datastamp)AS YEAR_VALUE、dbname.dbo.ISOweek(Activitylogs.Datastamp)...)のコードを追加した場合... – Ghita

答えて

2

あなたの接続文字列が最初に使用するデータベースを指定する必要がありますそれはこのようなものになるでしょう。それがなければ

var cn = new SqlConnection(
    "SERVER=SomeServer;DATABASE=SomeDb;Integrated Security=SSPI;" 
); 

を、あなたはおそらく私masterデータベース、に投棄されていますなぜ関数名を完全修飾する必要があるのですか?

関連する問題