2009-06-04 14 views
1

SQL Server用に作成しているストアドプロシージャに問題があります。tsql関数の結果をストアドプロシージャに保存します。

私は値を持つ2列テーブルを返すストアドプロシージャ内の関数を呼び出しています。この値は、ストア処理の残りの部分で使用するVARCHAR変数に割り当てたい値です。

DECLARE @TEAM VARCHAR(100) 
SET @TEAM = (SELECT DISTINCT value fn_split(@foldernarrative, '-') WHERE idx = 0) 

機能は、独自に動作しますが、私の店プロシージャに追加したとき、私はこれに非常に新たなんだな

Server: Msg 170, Level 15, State 1, Line 94 
Line 94: Incorrect syntax near '('. 

ように私は構文エラーを取得し、これは、なぜ私が見ることができません問題。

何か助けがよかったです。

ありがとうございました。

答えて

2

テーブル値関数から選択するときにFROMキーワードがないと思います。 dariomとして

DECLARE @TEAM VARCHAR(100) 
SET @TEAM = (SELECT DISTINCT value FROM fn_split(@foldernarrative, '-') WHERE idx = 0) 
+0

ああ...それらの午前中の1つです... –

+0

私たち全員に起こります!別のコーヒーのための時間:-) – dariom

0

が指摘していますがまたfn_splitが関数の場合、オブジェクトの所有者を追加する必要があります。

これを試してみてください。

DECLARE @TEAM VARCHAR(100) 
SET @TEAM = (SELECT DISTINCT value FROM dbo.fn_split(@foldernarrative, '-') WHERE idx = 0) 
0

もちろん、このコードは、関数が複数の行を返すことができない場合にのみ機能します。

0

意図的にまたは偶発的にNULLを渡すことが予想される場合に備えて、@foldernarrativeの周囲にIsNullを追加することができます。

関連する問題