create procedure test_proc
@fetch_limit int,
@vid int
as
select top @fetch_limit value from value_pump where vid=@vid;
프로시져 생성할 때에 @fetch_limit에서 에러가 납니다 @fetch_limit를 그냥 숫자리터럴로 바꾸면 잘되구욘. 저런식으로의 대입은 허용이 안되나보네요?
뭔가 방법이 없을까요?
select top @fetch_limit = value from value_pump where vid=@vid;
근데 이렇게 하면 @fetch_limit 값이 3이면 3건을 가져오나요?
create procedure test_proc @fetch_limit int, @vid int as set nocount on declare @sql nvarchar(200) set @sql = 'select top ' + str(@fetch_limit) + ' value from value_pump where vid=''' + @vid + '''' exec sp_executesql @sql end
-- 참고로 2005에선 select top (@fetch_limit) value from value_pump where vid=@vid 요게 되네요..