2012-10-10 10 views
3

여기까지가 있습니다. 쿼리 결과를 int 변수에 저장하고 싶지만 지금까지 null을 얻습니다. 실행 후 @query와 @countrow는 모두 null입니다. 어떤 제안이라도 좋을 것입니다.SQL 결과를 변수로 가져 오기

SET @query = N'select @countrow=count(*) from ' + @tablename 
EXECUTE sp_executesql @query 
+0

살펴보십시오을 다음'@ tablename' null가 아니면 안된다 – podiluska

답변

3
DECLARE @i INT, @sql NVARCHAR(512), @tablename varchar(200) = 'tbl' 

SET @sql = N'SELECT @i = COUNT(*) FROM ' + @tablename 

EXEC sp_executesql 
    @query = @sql, 
    @params = N'@i INT OUTPUT', 
    @i = @i OUTPUT 

PRINT @i 

SQL Fiddle

2

당신이 유사한 OUTPUT 키워드를 사용할 필요가 : @의 query`가 null`경우

declare @query nvarchar(max) 
declare @countrow int 
declare @tablename varchar(50) 

SET @query = N'select @cnt=count(*) from ' + @tablename 
EXECUTE sp_executesql @query, N'@cnt int OUTPUT', @[email protected] OUTPUT 

select @countrow as countrow -- to get the result