2011-08-11 19 views
1

テーブルを返す関数に対して内部結合を行う必要があるストアドプロシージャがあります。そのようにそれを呼び出すようにしよう:テーブル関数に結合されたストアドプロシージャ?

INNER JOIN [dbo].[udf_GetBillingInfo(@QuoteID)] billInfo ON quotes.QuoteID = billInfo.QuoteID 

はエラー私はそれはそれでロジックのマイナービットを持っていると私はちょうどビューに関数を作ることができるとは思わない、私の要件を考えるとinvalid object name dbo.udf_GetBillingInfo(@QuoteID)

を与えます。結果にどのように参加できますか?関数の結果を変数などに代入する必要がありますか?

+1

あなたはTVFに参加することができます。あなたは確かにスキーマとテレビの名前は正しいですか? –

答えて

5

あなたの問題は、角括弧で答えを見つけるかもしれないと思う、彼らは、関数名として内部にあるものは何でも引用します。これに

変更を:

ここ
[dbo].udf_GetBillingInfo(@QuoteID) 
+0

ハァッ、そうだった。私は[]が**カラム**の名前を表していることを忘れていたので、関数の名前を考えていました*と*パラメータはカラムでした。失敗。 –

+0

または[dbo]。[udf_GetBillingInfo](@ QuoteID) – canon

+0

D'oh!私はそれを逃したとは信じられない! +1 –

-1

テーブル関数として関数を記述できますか? [dbo].[udf_GetBillingInfo(@QuoteID)] - - 私はあなたがここに

tsql returning a table from a function or store procedure

+1

質問に対する答えではありません。(私のdownvote btwではなく) –

+0

確かに。私はあなたが実際にそれがテーブル機能であると言いました。 –

0

がTVFへの参加の(ダム)の例では、それが役に立てば幸い!

CREATE FUNCTION MyFunc (@p1 int) RETURNS TABLE 
AS 
RETURN 
(
     SELECT @p1 AS a 
     union 
     SELECT @p1 +1 AS a 
     union 
     SELECT @p1 +2 AS a 
) 
GO 

declare @t table (c int) 
insert @t (c) values(1),(2),(3),(4) 

select * 
from @t t 
left join dbo.MyFunc(1) f on t.c = f.a 
関連する問題