Classic ASP MSSQL 저장 프로시저 호출(실행) 방법 및 사용 예제
Classic ASP 프로그래밍 개발 시 MS SQL에서 작성한 저장 프로시저를 호출하여 사용하는 경우가 많이 발생합니다. 그럼 예제를 통해서 MS SQL 저장 프로시저를 호출하여 사용하는 방법에 대해서 알아보죠.
포스트 기준
– Classic ASP 3.0
– Microsoft SQL Server 2019
1. 저장/수정/삭제/배치 저장 프로시저 호출하여 사용하는 예제
1. 샘플 저장 프로시저 (저장/수정/삭제/배치)
/* 학번, 성명, 과, 학년을 받아 학생정보에 저장 */
CREATE PROC USP_BS_DEMO_1 (
@P_ID NVARCHAR(50), -- 학번
@NAME NVARCHAR(50), -- 성명
@DEPART NVARCHAR(50), -- 과
@GRADE SMALLINT, -- 학년
@RETURN SMALLINT OUTPUT -- OUTPUT 변수 : '1'이면 정상 처리
)
AS
SET NOCOUNT ON -- 영향을 받은 행 수를 나타내는 메시지 출력하지 않음
/* TRY...CATCH 구문을 사용 : 반드시 사용할 필요는 없고 필요시 사용 */
BEGIN TRY
BEGIN TRANSACTION
INSERT INTO BS_DEMO_8_1 (P_ID, NAME, DEPART, GRADE)
VALUES (@P_ID, @NAME, @DEPART, @GRADE)
COMMIT
SET @RETURN = 0 -- 정상인 경우 1을 넘겨 줌
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
SET @RETURN = -1 -- 비정상인 경우는 -1을 넘겨 줌
END CATCH
GO
2. 저장 프로시저 호출 Classic ASP
▶ Adovbs.inc 파일에 상수가 정의되어 있습니다. (예: adCmdStoredProc → 4)
▶ Adovbs.inc 파일은 ASP를 설치하면 생성됩니다. (예: C:Program FilesCommon FilesSystemado 폴더)
<%@ LANGUAGE = VBScript %>
<!-- #include virtual="/asp/inc/adovbs.inc" -->
<%
Dim Db, Cmd
Dim strPId, strName, strDepart, intGrade
Dim intReturn
strPId = "1004" ' 학번
strName = "홍길동4" ' 성명
strDepart = "컴퓨터공학과" ' 과
intGrade = 1 ' 학년
' Database 연동 (ODBC)
Set Db = Server.CreateObject("ADODB.Connection")
Db.Open ("DSN=BlueShare; UID=BlueShare; PWD=xxxxxxx")
' Command 개체 생성
Set Cmd = Server.CreateObject("ADODB.Command")
With Cmd
.ActiveConnection = Db
.Commandtext = "USP_BS_DEMO_1" ' 저장 프로시저
.CommandType = adCmdStoredProc ' 실행 종류 (adCmdStoredProc 상수값: 4 => adovbs.inc 파일에 정의)
.Parameters.Append .CreateParameter("@IN_P_ID", advarwchar, adParamInput, 50)
.Parameters.Append .CreateParameter("@IN_NAME", advarwchar, adParamInput, 50)
.Parameters.Append .CreateParameter("@IN_DEPART", advarwchar, adParamInput, 50)
.Parameters.Append .CreateParameter("@IN_GRADE", adSmallInt, adParamInput, 1)
.Parameters.Append .CreateParameter("@RETURN", adSmallInt, adParamOutput, 2)
.Parameters("@IN_P_ID") = strPId
.Parameters("@IN_NAME") = strName
.Parameters("@IN_DEPART") = strDepart
.Parameters("@IN_GRADE") = intGrade
.Parameters("@RETURN") = 0
.Execute, , adExecuteNoRecords ' 저장 프로시저 실행
intReturn = .Parameters("@RETURN")
End with
' 결과값에 따른 처리
If intReturn = 0 Then
Response.write "okkk"
Response.Write "<script>alert('정상으로 처리 되었습니다.')</script>"
Else
Response.Write "<script>alert('저장시 오류가 발생했습니다.')</script>"
End if
Set Cmd = Nothing
Db.Close
Set Db = Nothing
%>
3. 실행 결과 화면

2. 조회용 저장 프로시저 호출하여 사용하는 예제
1. 샘플 저장 프로시저 (조회용)
/* 학번을 받아 학생정보 조회 */
CREATE PROC USP_BS_DEMO_2 (@IN_P_ID NVARCHAR(5))
AS
BEGIN
/* 테이블 변수 선언 */
DECLARE @TEMP TABLE (
P_ID NVARCHAR(50),
NAME NVARCHAR(50),
DEPART NVARCHAR(50),
GRADE SMALLINT,
S_ID NVARCHAR(50),
SUBJECT NVARCHAR(50),
SCORE SMALLINT
)
-- 테이블 변수에 저장 작업
INSERT INTO @TEMP
SELECT A.P_ID, -- 학번
B.NAME, -- 성명
B.DEPART, -- 학과
B.GRADE, -- 학년
A.S_ID, -- 과목코드
C.SUBJECT, -- 과목
A.SCORE -- 점수
FROM BS_DEMO_8_3 A
INNER JOIN BS_DEMO_8_1 B ON A.P_ID = B.P_ID
INNER JOIN BS_DEMO_8_2 C ON A.S_ID = C.S_ID
WHERE A.P_ID = @IN_P_ID -- 학번 받은 변수
-- 해당되는 데이터 조회
SELECT * FROM @TEMP
END
2. 저장 프로시저 호출 Classic ASP
<%@ LANGUAGE = VBScript %>
<!-- #include virtual="/asp/inc/adovbs.inc" -->
<%
Dim Db, Cmd
Dim strPId, IntOutAvg
strPId = "1003" ' 받는변수
' Database 연동 (ODBC)
Set Db = Server.CreateObject("ADODB.Connection")
Db.Open ("DSN=BlueShare; UID=BlueShare; PWD=xxxxxx")
' Command 개체 생성
Set Cmd = Server.CreateObject("ADODB.Command")
With Cmd
.ActiveConnection = Db
.Commandtext = "USP_BS_DEMO_2" ' 저장 프로시저
.CommandType = adCmdStoredProc ' 실행 종류 (adCmdStoredProc 상수값: 4 => adovbs.inc 파일에 정의)
.Parameters.Append .CreateParameter("@IN_P_ID", advarwchar, adParamInput, 50)
.Parameters("@IN_P_ID") = strPId
Set Rs = .Execute()
End with
Response.Write "학번(" & strPId & ")의 점수 </br></br>"
' 하나씩 행 처리
Do While Not Rs.EOF
Response.write "과목: " & Rs(5) & ", 점수: " & Rs(6) & "점 </br>"
Rs.MoveNext
Loop
Set Cmd = Nothing
Db.Close
Set Db = Nothing
%>
3. 실행 결과 화면

함께 보면 좋은 게시글
- Classic ASP MSSQL DB 연결 방법 (ODBC 32비트 이용)
- Classic ASP DB 트랜잭션 처리 – Commit, Rollback
- Classic ASP 예외처리 방법 – On Error Resume Next
- Classic ASP에서 XMLHTTP를 사용한 JSON 통신: 예제 코드 및 구현 방법
- Request 개체 QueryString 컬렉션 – Classic ASP 내장 개체 (1)
이 글이 도움이 되셨다면 공유 부탁 드립니다.



