SQL Server表值函数参数

时间:2012-09-05 11:25:35

标签: sql-server-2005 table-valued-parameters

我得到了以下表值函数(在SQL Server 2005中)。当我运行-1时出现编译错误,但是 - 3没问题, - 2用于生成要在-3中使用的参数,这应该与--1中的相同。但为什么--1得到错误?

create function test_udf_nz_2 (
    @a datetime
    ,@b datetime
)
returns @result TABLE(
    c1 datetime
    ,c2 datetime
)
as
begin
    insert into @result
    select @a, @b
    return
end


declare
    @dt_report_date DATETIME 
    ,@v_stores VARCHAR(MAX) 

select @dt_report_date = '20120831'
        ,@v_stores = '152'
--1
select * from dbo.test_udf_nz_2( DATEADD(hour,0,DATEDIFF(d,0,@dt_report_date)), DATEADD(hour,24,DATEDIFF(d,0,@dt_report_date))) AS t

--2
--select DATEADD(hour,0,DATEDIFF(d,0,@dt_report_date)), DATEADD(hour,24,DATEDIFF(d,0,@dt_report_date))

--3
select * from dbo.test_udf_nz_2( '20120831', '20120901') AS t

1 个答案:

答案 0 :(得分:0)

刚刚发现。数据库的兼容级别设置为sql server 2000(8.0)。

我不知道函数不能在2000年的表值函数的参数中使用...