测试我的第一个表格值函数,即使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
我缺少什么?谢谢!
答案 0 :(得分:2)
您已将参数设为char(10)
。我无法想象这是您需要的数据类型。您应该使用该列具有的相同数据类型(可能应该是nvarchar
)。
'C1505 BLACK'
是11个字符。不适合。
答案 1 :(得分:0)
将@Ref
参数设置为50
或higher
。示例:
@Ref varchar(500)
这将解决您的问题。