DJ메탈짱™의 Free Style

[MS-SQL] 오픈쿼리 Openquery with sp_executesql 결과값 반환 본문

일(job)/DBMS

[MS-SQL] 오픈쿼리 Openquery with sp_executesql 결과값 반환

뽀&쏭 2016. 1. 14. 16:55



-- 원래 문법은 아래와 같습니다.

-- 하지만 openquery 내부에 조건이 들어가지 않으므로  좋은 방법은 아닐테죠….

-- 그래서 마지막 예문을 참고해주시면 됩니다.

DECLARE @IntVariable varchar(8);

DECLARE @SQLString nvarchar(1000);

DECLARE @ParmDefinition nvarchar(500);

DECLARE @max_title varchar(30);

 

SET @IntVariable = '20110303';

SET @SQLString = '   

SELECT @max_titleOUT = jun_date FROM

OPENQUERY(MAYRESRUN,''

select jun_date,plan_date

from ffa011t

'')

where plan_date = @date

'

SET @ParmDefinition = N'@date varchar(8), @max_titleOUT varchar(30) OUTPUT';

EXECUTE sp_executesql @SQLString, @ParmDefinition, @date = @IntVariable, @max_titleOUT=@max_title OUTPUT;

select @max_title

 

-- sp_executesql  정의된 변수를 사용하지 않고 바로 where절에 사용하여

-- 성능을 개선하는 것이 좋을  하네요.

-- 그때 그때 다르게 사용하면 되겠지요~~~~ ^^

DECLARE @IntVariable varchar(8);

DECLARE @SQLString nvarchar(1000);

DECLARE @ParmDefinition nvarchar(500);

DECLARE @max_title varchar(30);

 

SET @IntVariable = '20110303';

SET @SQLString = '   

SELECT @max_titleOUT = jun_date FROM

OPENQUERY(MAYRESRUN,''

select jun_date,plan_date

from ffa011t

where plan_date = '''''+ @IntVariable + '''''

'')   

'

SET @ParmDefinition = N'@date varchar(8), @max_titleOUT varchar(30) OUTPUT';

EXECUTE sp_executesql @SQLString, @ParmDefinition, @date = NULL, @max_titleOUT=@max_title OUTPUT;

select @max_title

 

MS-SQL sp_executesql 도움말 참고해서 작성해봤습니다. (__)