안녕하세요 SQL초보인데요..
스칼라 변수 "@TotalRecordCnt"을(를) 선언해야 합니다.
라고 하면서 에러가 나는데 변수를 위에 선언했는데 이런경우 어떻게 써야 하는지좀 알려주심 고맙겠습니다.
아래는 프로시저 소스입니다.
Declare
@pkey as varchar(20)
, @TableName as varchar(30)
, @PageSize INT
, @Swhere as varchar(100)
DECLARE
@strSQL AS NVARCHAR(MAX),
@TotalRecordCnt as varchar (20),
@TotalPage INT
set @pkey = 'idx'
set @TableName = 'CHECK_TB'
set @PageSize = 10
set @Swhere = 'idx is not null'
SET @strSQL = 'Select @TotalRecordCnt = Count(*)'
SET @strSQL = @strSQL + ',@TotalPage = CEILING(CAST(Count(*) AS FLOAT)/10)'
SET @strSQL = @strSQL + ' from ' + @TableName + ' where ' + @Swhere
exec SP_EXECUTESQL @strSQL
print @TotalRecordCnt
Comment 1
-
건우아빠
2014.06.11 09:37
예시( help 보시면 잘 나와 있습니다.)
ms의 가장 큰 장점. help (msdn) 이죠..
DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @max_title varchar(30);
SET @IntVariable = 750;
SET @SQLString = N'SELECT @max_titleOUT = count(*)
FROM TESTTABLE
WHERE wgty = @level';
SET @ParmDefinition = N'@level int, @max_titleOUT varchar(30) OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition, @level = @IntVariable, @max_titleOUT=@max_title OUTPUT;
print @max_title;