반응형
반응형



 
 출처 : SQLer.pe.kr (http://sqler.pe.kr/web_board/view_list.asp?id=80106&read=15&pagec=&ses=1)
sql 2005를 사용하고 있습니다.
혹시 프로시져내에서 .sql 파일을 실행시킬수 있는지요..??
프로시저에서 단순히 쿼리를 실행시키는것이 아니고

sp내에서 .sql파일을 불러와서 실행시키는건데...
있을듣 한데 없네요..ㅠ.ㅠ
.sql파일에는 수십개의 프로시져를 생성하는 동적프로시저 구문이 있습니다.
그래서 sql파일을 불러들여 생성하려 하는데 잘안되네여..
방법이 없으면 결국 모두 동적으로 실행하여야 하는데.....ㅠ.ㅠ
도와주십시오~~ 
 
 
여기(SQLLeader.com)다음으로 자주 방문하는 sqler.pe.kr 에 재미있는 질문이 올라와서 고민해봤습니다.
 
다음과 같은 방법은 어떨까요...
 
[실행 쿼리 파일 - D:\CreateProc.sql]
 
 
[수행 쿼리]

IF EXISTS(SELECT * FROM sys.Objects WHERE type = 'P' and name = 'TestProc')

        DROP PROC TestProc

GO

 

--임시 테이블에 쿼리 파일을 Bulk Loading.

--이때 구분자를 지정하지 않음으로써 행으로 저장.

CREATE TABLE #TBL(QUERYSTR VARCHAR(MAX))

 

BULK INSERT #TBL FROM 'D:\CreateProc.sql' WITH (ROWTERMINATOR ='')

 

--임시 테이블로부터 쿼리를 읽어들인 , 변수에저장

DECLARE @QUERYSTR VARCHAR(MAX)

 

SELECT @QUERYSTR = QUERYSTR FROM #TBL

 

--변수 실행

EXEC(@QUERYSTR)

 

--파일 내에 생성된 저장 프로시저

EXEC dbo.TestProc

 

--임시 테이블 삭제

DROP TABLE #TBL

GO

 

 
 
 
[수행 결과]
 
 
반응형

'연구개발 > DBA' 카테고리의 다른 글

SQL Server 2000 나만의 노하우 & 팁  (0) 2009.06.29
동적 SQL의 축복과 저주  (0) 2009.06.29
ISNUMERIC 함수관련  (0) 2009.06.29
T-SQL 작성시 체크리스트  (0) 2009.06.29
OVER()를 이용한 집계 처리  (0) 2009.06.29

+ Recent posts

반응형