프로시져 결과값을 select 해야할 경우에 사용할 것~
--테스트 테이블 생성
CREATE TABLE TEST1
(
col1 int,
col2 varchar(500)
)
--데이타 입력
INSERT INTO TEST1 VALUES(1, 'AAA')
INSERT INTO TEST1 VALUES(2, 'BBB')
INSERT INTO TEST1 VALUES(3, 'CCC')
INSERT INTO TEST1 VALUES(4, 'DDD')
INSERT INTO TEST1 VALUES(5, 'EEE')
--테스트 프로시져 생성
CREATE PROCEDURE usp_test_proc
(
@index As INT
)
AS
SELECT *
FROM TEST1
WHERE col1 > @index
방법1
--######### 임시 테이블을 생성해서 데이타를 넣은후 필터링 ###################
CREATE TABLE #TEMP
(
col1 int,
col2 varchar(500)
)
INSERT #TEMP EXEC usp_test_proc 3
SELECT * FROM #TEMP WHERE col2 = 'EEE'
DROP TABLE #TEMP
--#######방법2 OPENROWSET 함수를 이용한다.
--2005에서는 Ad Hoc Distributed Queries 옵션이 default로 꺼져 있으므로 켜줘야 한다.
--켜주지 않을 경우 아래와 같은 에러가 발생한다.
메시지 15281, 수준 16, 상태 1, 줄 1
구성 요소 'Ad Hoc Distributed Queries'이(가) SQL Server 보안 구성의 일부로 해제되었으므로 이 구성 요소의 문 'OpenRowset/OpenDatasource'에
대한 액세스가 차단되었습니다. 시스템 관리자는 sp_configure를 사용하여 'Ad Hoc Distributed Queries'의 사용을 활성화할 수 있습니다. 'Ad Hoc Distributed Queries'
활성화 방법은 SQL Server 온라인 설명서의 "노출 영역 구성"을 참조하십시오.
sp_configure 'show advanced options', 1;
reconfigure
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
sp_configure 'show advanced options', 0;
reconfigure
GO
---------------------------------------------------------------------
SELECT * FROM OPENROWSET('sqloledb', 'server=(local);trusted_connection=yes' ,'exec 디비이름.dbo.usp_test_proc 4')
'SQL SERVER' 카테고리의 다른 글
xplog70.dll DLL 또는 이 DLL이 참조하는 DLL 중 하나를 로드할 수 없습니다 (0) | 2011.05.19 |
---|---|
CREATE INDEX ... INCLUDE 에 관하여. (0) | 2011.03.09 |
SQL SERVER Named Instance에 연결하기 (0) | 2010.11.03 |
SQLCMD에 관해서.. (0) | 2010.11.03 |
System Database Restore OR move하는법 (0) | 2010.11.03 |