SQL SERVER 데이터베이스 개발 의 저장 프로 세 스 응용

많은 친구 들 이 SQL SERVER 를 사용 하여 개발 한 지 이미 오래 되 었 지만 아직 프로젝트 에서 저장 과정 을 사용 하지 않 거나 거의 사용 하지 않 았 을 수도 있 고,저장 과정 을 사용 할 필요 가 없다 고 생각 하 는 친구 들 도 있 을 수도 있다.사실은 한 프로젝트 가 유지 단계 에 이 르 렀 을 때 저장 과정 이 우리 에 게 좋 은 점 을 가 져 다 주 었 다 는 것 을 알 게 될 것 이다.수정 이 편리 하고 우리 의 응용 프로그램 을 바 꿀 수 없다.저장 과정의 내용 만 바 꾸 고 우리 의 프로그램 속 도 를 향상 시 킬 수 있다.
  참조:
SQL SERVER 온라인 총서 의 정의:저장 과정 은 사용자 가 제공 한 인 자 를 받 아들 이 고 되 돌려 줄 수 있 는 Transact-SQL 문장의 집합 입 니 다.영구적 으로 사용 할 수 있 는 프로 세 스 를 만 들 거나 세 션 에서 임시로 사용 하거나 모든 세 션 에서 임시로 사용 할 수 있 습 니 다(전역 임시 프로 세 스).Microsoft SQL Server 가 시 작 될 때 자동 으로 실행 되 는 저장 프로 세 스 를 만 들 수도 있 습 니 다.저장 과정 을 사용 하려 면 먼저 우 리 는 기본 적 인 T-SQL 문 구 를 익 혀 야 한다.저장 과정 은 T-SQL 문 구 를 구성 하기 때 문 이 고 함수,과정 에 관 한 개념 을 알 아야 한다.왜냐하면 우 리 는 응용 프로그램 에서 저장 과정 을 호출 해 야 하기 때문이다.마치 우리 가 응용 프로그램의 함 수 를 호출 하 는 것 과 같 지만 호출 방법 은 약간 다르다.다음은 저장 과정의 수립 과 사용 방법 을 살 펴 보 자.1.저장 과정 을 만 드 는 것 은 데이터 시트 와 마찬가지 로 사용 하기 전에 저장 과정 을 만들어 야 합 니 다.간단 한 문법 은 다음 과 같 습 니 다.
  참조:
CREATE PROC 저장 프로시저 이름    [매개 변수 목록(여러 개","로 구분)]ASSQL 문장 예:
  참조:
CREATE PROC upGetUserName@intUserId        INT,@ostrUserName NVARCHAR(20) OUTPUT                -- 출력 할 인자 ASBEGIN        -- uName 의 값 을@ostrUserName 변수,즉 출력 할 인자 에 부여 합 니 다.        SELECT@ostrUsername=uName FROM uUser WHERE uId=@intUserIdEND 에서 CREATE PROC 문구(전체 문 구 는 CREATE PROCEDURE)는 SQL SERVER 에 게 현재 저장 과정 을 만들어 야 한 다 는 뜻 입 니 다.upGetUserName 은 저장 과정 이름 입 니 다.@intUserId 와@ostrUsername 은 각각 이 저장 과정의 두 매개 변수 입 니 다.주의 하 세 요.SQL SERVER 에서...모든 사용자 가 정의 하 는 변 수 는'@'으로 시작 합 니 다.OUTPUT 키 워드 는 이 매개 변 수 를 출력 하 는 데 사 용 됩 니 다.AS 다음 에 저장 과정 내용 입 니 다.이 코드 를'조회 분석 기'에서 한 번 만 실행 하면 SQL SERVER 는 현재 데이터베이스 에'upGetUserName'이라는 저장 과정 을 만 듭 니 다.'기업 관리자'를 열 고 현재 작업 중인 데이터 베 이 스 를 선택 한 다음 왼쪽 트 리 목록 에서'저장 과정'을 선택 할 수 있 습 니 다.이 때 오른쪽 목록 에서 방금 만 든 저장 과정 을 볼 수 있 습 니 다(없 으 면 새로 고침 하면 됩 니 다).2.저장 프로 세 스 가 호출 되 기 전에 저 희 는'upGetUserName'이라는 저장 프로 세 스 를 만 들 었 습 니 다.이 저장 프로 세 스 의 기능 은 한 사용자 의 이름 을 얻 는 데 사 용 됩 니 다.저장 프로 세 스 가 구축 되 었 습 니 다.다음은 응용 프로그램 에서 호출 되 어야 합 니 다.다음은 ASP 프로그램 에서 호출 되 는 것 을 보 겠 습 니 다.
  참조:
Dim adoComm'//대상 을 만 듭 니 다.저장 프로시저 Set adoComm=CreateObject("ADODB.Command")With adoComm 을 호출 합 니 다.        '// 연결 설정,연 결 된 ADODB.Connection 대상 으로 adoConn 설정        .ActiveConnection = adoConn        '// 형식 은 저장 프로시저,adcmdStoredProc=4        .CommandType = 4        '// 저장 프로시저 이름        .CommandText = "upGetUserName"        '// 사용자 번호 설정        .Parameters.Item("@intUserId").Value = 1        '// 실행 메모리 프로 세 스        .Execute        '// 저장 프로시저 에서 되 돌아 오 는 사용자 이름 가 져 오기        Response.Write"사용자 이름:"&.Parameters.Item("@ostrUsername").ValueEnd With'//방출 대상 Set adoComm=Nothing 은 상기 두 단 계 를 통 해 간단 한 저장 과정 을 만 들 고 사용 할 수 있 습 니 다.다음은 저장 과정의 응용 을 좀 더 이해 하기 위해 약간 복잡 한 저장 과정 을 살 펴 보 자.3.저장 과정의 실제 응용 사용자 로그 인 은 ASP 프로젝트 에서 자주 사 용 됩 니 다.많은 친구 들 이 비슷 한 시스템 을 만 들 었 다 고 믿 지만 저장 과정 을 사용 하여 친 구 를 검증 하 는 것 이 많 지 않 을 수 있 습 니 다.그러면 우 리 는 이 를 예 로 들 어 간단 한 사용자 로그 인 인증 의 저장 과정 을 작성 합 니 다.
  참조:
CREATE PROC upUserLogin@strLoginName        NVARCHAR(20),@strLoginPwd        NVARCHAR(20),@blnReturn                BIT OUTPUTAS--암 호 를 저장 할 임시 변 수 를 정의 합 니 다 DECLARE@strPwd NVARCHAR(20)BEGIN        -- 표 에서 현재 사용자 의 암 호 를 조회 하고@strPwd 변 수 를 할당 합 니 다.다음은 그 를 비교 해 야 합 니 다.        SELECT @strPwd=uLoginPwd FROM uUser WHERE uLoginName=@strLoginName        IF @strLoginPwd = @strPwd                BEGIN                        SET @blnReturn = 1                        -- 사용자 마지막 로그 인 시간 업데이트                        UPDATE uUser SET uLastLogin=GETDATE() WHERE uLoginName=@strLoginName                END        ELSE                SET@blnReturn=0END 사용자 로그 인 저장 프로 세 스 가 만 들 어 졌 으 니 이제 프로그램 에서 시도 해 보 세 요.한 영역 에 여러 개의 문구 가 있 을 때 는 BEGIN...END 키 워드 를 사용 해 야 합 니 다.
  참조:
Dim adoComm'//대상 을 만 듭 니 다.저장 프로시저 Set adoComm=CreateObject("ADODB.Command")With adoComm 을 호출 합 니 다.        '// 연결 설정,연 결 된 ADODB.Connection 대상 으로 adoConn 설정        .ActiveConnection = adoConn        '// 형식 은 저장 프로시저,adcmdStoredProc=4        .CommandType = 4        '// 저장 프로시저 이름        .CommandText = "upUserLogin"        '// 로그 인 이름 설정        .Parameters.Item("@strLoginName").Value = "admin"        '// 로그 인 비밀번호 설정        .Parameters.Item("@strLoginPwd").Value = "123456"        '// 실행 메모리 프로 세 스        .Execute        '// 로그 인 성공 여 부 를 판단 합 니 다        If .Parameters.Item("@blnReturn").Value = 1 Then                Response.Write"로그 인 성공 을 축하합니다!"        Else                Response.Write"아니 죠?틀린 것 같은 데..."        End IfEnd With'//방출 대상 Set adoComm=Nothing 은 위의 절 차 를 통 해 간단 한 사용자 로그 인 검증 과정 도 마 쳤 습 니 다.이 제 는 프로그램 에 통합 하면 간단 한 사용자 로그 인 검증 을 실현 할 수 있 습 니 다.다른 세부 사항 은 당신 이 직접 처리 하 세 요.위 에서 소개 한 두 개의 저장 과정 은 모두 하나의 값 만 되 돌려 주 는 것 이다.다음은 하나의 기록 집합 을 되 돌려 주 는 저장 과정 을 살 펴 보 자.
  참조:
CREATE PROC upGetUserInfos@intUserGroup        INTASBEGIN        -- 데이터베이스 에서 조건 에 맞 는 데 이 터 를 추출 하 다.        SELECT uName,uGroup,uLastLogin FROM uUser WHERE uGroup=@intUserGroup        -- 일렬 합계 삽입        UNION        SELECT'합계 인원:',COUNT(uGroup),NULL FROM uUser WHERE uGroup=@intUserGroupEND 이제 ASP 프로그램의 호출 을 살 펴 보 겠 습 니 다.
  참조:
Dim adoCommDim adoRt'//대상 을 만 듭 니 다.저장 프로시저 Set adoComm=CreateObject("ADODB.Command")Set adoRs=CreateObject("ADODB.Recordset")With adoComm 을 호출 합 니 다.        '// 연결 설정,연 결 된 ADODB.Connection 대상 으로 adoConn 설정        .ActiveConnection = adoConn        '// 형식 은 저장 프로시저,adcmdStoredProc=4        .CommandType = 4        '// 저장 프로시저 이름        .CommandText = "upGetUserInfos"        '// 사용자 그룹 설정        .Parameters.Item("@intUserGroup").Value = 1        '// 저장 프로 세 스 를 실행 합 니 다.상기 몇 가지 예 와 달리 RecordSet 의 Open 방법 을 사용 합 니 다.        adoRs.Open adoComm        '// 첫 번 째 값 보이 기        Response.write adoRs.Fields(0).ValueEnd With'//방출 대상 Set adoRs=NothingSet adoComm=Nothing 어 떻 습 니까?간단 하지 않 습 니까?하지만 저장 과정의 용 도 는 이것 뿐만 아니 라 더 강력 한 기능 도 있 습 니 다.예 를 들 어 커서,임시 표를 사용 하여 여러 표,심지어 여러 데이터 베이스 에서 데 이 터 를 호출 한 다음 에 사용자 에 게 되 돌려 줍 니 다.이것들 은 사용 과정 에서 천천히 발굴 할 수 있다.자,저장 프로 세 스 응용 은 여기까지 소개 하 겠 습 니 다.만약 에 본 논문 에 대해 궁금 한 점 이 있 으 면 댓 글 을 달 아 주 십시오.저 는 최선 을 다 해 해답 을 드 리 겠 습 니 다.다음 에는 트리거 애플 리 케 이 션 을 소개 해 드 리 겠 습 니 다.

좋은 웹페이지 즐겨찾기