카테고리 없음
[씨#] 저장 프로 시저가 오류를 제공함
필살기쓰세요
2021. 2. 2. 09:38
일부 공간을 제공 후 @tablename
와 전 ORDER
Declare @sql varchar(max)=''
SET @sql = 'Select top (' + @rowval + ') * from '+quotename(@tablename)+ ' ORDER BY sno DESC'
--^here
EXEC (@sql)
또한 사용 Print/Select
을 시작하여dynamic sql
이 동적 SQL에 보안을 추가하기 위해 다음과 같이 변경합니다.
- 확인
@rowval
으로INT
- SQL 주입을 피하기 위해 매개 변수에
QUOTENAME
함수 사용@tablename
SP_EXECUTESQL
대신 동적 쿼리를 실행하는 데 사용 합니다.EXEC
여기에 올바른 방법이 있습니다.
Declare @sql nvarchar(max)='',@tablename varchar(130), @rowval int
select @sql = 'Select top (@rowval) * from '+quotename(@tablename)+ ' ORDER BY sno DESC'
exec sp_executesql @sql,N'@rowval int',@rowval = @rowval
출처
https://stackoverflow.com/questions/39920101