반응형

/********************************************************************************************
-- Title : [SQL2k8] INSERT EXEC 중첩 오류
-- Key word : insert exec 중첩 linked server 연결된 서버
********************************************************************************************/

-- sp_filegroup0를 통한 파일 그룹 정보 호출 프로시저 내에 insert exec~구문이 존재
-- 아래 쿼리에서 다시 insert exec~수행시 다음 오류 발생.
--

메시지 8164, 수준 16, 상태 1, 프로시저 sp_filegroup0, 줄 98

--

INSERT EXEC 문은 중첩될 수 없습니다.


declare @sql nvarchar(max);
set @sql = 'exec sp_filegroup0;'

declare @result2 table   
( [database] sysname  
, fg# int
, [filegroup] sysname   
, file# int
, logical_file nvarchar(500)   
, physical_file nvarchar(500)   
, file_type nvarchar(50)   
, is_readonly nvarchar(50)  
, is_default nvarchar(50)
, max_size varchar(50)
, growth nvarchar(50)
, [status] nvarchar(50)   
, file_size_mb nvarchar(50) 
, free_space_mb nvarchar(50) 
, free_space_pct nvarchar(50)    
);   

insert into @result2
exec (@sql);

select * from @result2;

 

 

-- 그런데, 연결된 서버를 사용하는 경우 insert exec~ 중첩 오류 발생하지 않음.
--            왜 안나는지는 모르겠음(로컬/원격에서 수행하는 알고리즘이 다를려나..ㅡ.ㅡ'').
-- 그래서, 서버 스스로를 연결된 서버로 설정하여 수행함.
--            set @sql = 'exec linked_server.db.schema.sp_filegroup0;';로 하니 되더이다~!! Tis~!!

반응형

+ Recent posts