2012-09-05 98 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年的表值函數的參數一起使用......您使用的是哪個版本