0

次のテーブル値関数を取得しました (SQL Server 2005)。--1 を実行するとコンパイル エラーが発生しましたが、-3 は問題ありません。--3 で使用されるパラメーターを生成するために --2 が使用されます。これは --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
4

1 に答える 1

0

ちょうどわかった。データベースの互換レベルは、SQL Server 2000 (8.0) に設定されています。

2000年にテーブル値関数のパラメーターで関数を使用できないことを知りませんでした...

于 2012-09-05T12:47:58.487 に答える