티스토리 뷰

일부 공간을 제공 @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에 보안을 추가하기 위해 다음과 같이 변경합니다.

  1. 확인 @rowval으로INT
  2. SQL 주입을 피하기 위해 매개 변수에 QUOTENAME함수 사용@tablename
  3. 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/39920124
댓글
공지사항
Total
Today
Yesterday
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31