/********************************************************************************************
-- Title : [SQL2k8] INSERT EXEC 중첩 오류
-- Key word : insert exec 중첩 linked server 연결된 서버
********************************************************************************************/
-- sp_filegroup0를 통한 파일 그룹 정보 호출 프로시저 내에 insert exec~구문이 존재
-- 아래 쿼리에서 다시 insert exec~수행시 다음 오류 발생.
--
--
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~!!