2012-09-05 64 views
0

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

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 
+0

--1一个对我的作品(SQL Server 2012的)?什么是错误信息? – Andomar

+0

该数据库设置为与SQL Server 8.0(2000)兼容..谢谢。 – thotwielder

回答

0

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

我不知道功能无法在2000年的表值函数的参数一起使用......您使用的是哪个版本