1

最初のテーブル値関数をテストすると、SELECT が機能している間でもデータが得られません。
何も返さない:

select * from GetMvtHistory('C1505 BLACK')

正しいデータを返す:

select row_number() OVER (order by DocId) as Id, detailId, Quant, 0 as Cumul
    FROM vwDetailsHist
    WHERE refer = 'C1505 BLACK'
    ORDER BY DocId;

TVFコード:

ALTER FUNCTION [dbo].[GetMvtHistory]
(@Ref char(10))
RETURNS @MvtHist table
(
Id int,
[DetailId] int NULL, 
[Quant] int NULL, 
[Cumul] int NULL
)
WITH EXEC AS CALLER
AS
BEGIN
INSERT into @MvtHist
    select row_number() OVER (order by DocId) as Id, detailId, Quant, 0 as Cumul
        FROM vwDetailsHist
        WHERE refer = @Ref
        ORDER BY DocId;

RETURN 

何が欠けていますか?? ありがとう !

4

2 に答える 2

2

パラメータを a にしましたchar(10)。それがあなたが必要とするデータ型であるとは想像できません。おそらく、列が持っているのと同じデータ型を使用する必要があります (これはおそらく である必要がありますnvarchar)。

'C1505 BLACK'11文字です。合わない。

于 2013-10-30T11:16:46.980 に答える