create function dbo.TableCount(
@startTime datetime,
@endTime datetime,
)
returns int
as
begin
declare @sum int
declare @iTemp int
declare @queryTable char(500)
set @sum = 0
while @startTime <= @endTime
begin
set @queryTable = 'select @iTemp=count(*) from table' + left(convert(varchar,@startTime,112),6)
exec sp_executesql @queryTable
set @sum = @sum + @iTemp
set @startTime = dateadd(month, 1, @startTime)
end
return @sum
end
select dbo.TableCount('20010101', '20010103')
각 테이블이 월마다 구분이 되어 잇습니다. table200301, table200302.... 이런식으로요.
그래서 함수의 인자에 따라서 각 테이블의 합을 리턴하는 함수를 만들려고 했습니다.
이렇게 하니까 '함수 내에서는 함수와 저장 프로시저만 실행할 수 있습니다.' 라는 에러메시지가 나오는데요.
이 에러가 exec sp_executesql 구문에서 나는 것 같은데요.
함수내에서는 동적쿼리를 실행할수가 없는지 궁금합니다.
안된다면 다른 방법은 없는지요.