SQL Server 저장 프로시저 입문 학습

저장 프로시저 정의,
저장 프로 세 스(Stored Procedure)는 특정 기능 을 수행 하기 위 한 SQL 문 구 를 컴 파일 한 후 데이터베이스 에 저장 하고 사용 자 는 저장 프로 세 스 의 이름 을 지정 하고 파 라 메 터 를 제공 합 니 다.이 저장 프로 세 스 가 파 라 메 터 를 가지 고 있 으 면 실 행 됩 니 다.SQL Server 의 시리즈 버 전에 서 저장 과정 은 두 가지 로 나 뉜 다.시스템 이 제공 하 는 저장 과정 과 사용자 정의 저장 과정 이다.시스템 SP,주로 master 데이터베이스 에 저장 되 며,sp접두사 와 시스템 저장 과정 은 주로 시스템 표 에서 정 보 를 얻어 시스템 관리자 에 게 SQL Server 를 관리 합 니 다.사용자 정의 저장 과정 은 사용자 가 만 들 고 특정한 기능 을 완성 할 수 있 습 니 다.예 를 들 어 사용자 가 필요 로 하 는 데이터 정 보 를 조회 하 는 저장 과정 입 니 다.
여기 서 우 리 는 저장 과정의 장점 을 살 펴 보 자.
(1)중복 사용.저장 과정 은 중복 사용 할 수 있어 데이터베이스 개발 자의 업 무량 을 줄 일 수 있다.(2)성능 향상.저장 프로 세 스 는 생 성 할 때 컴 파일 되 었 으 며,나중에 사용 할 때 다시 컴 파일 하지 않 아 도 됩 니 다.일반적인 SQL 문 구 는 실행 할 때마다 한 번 씩 컴 파일 해 야 하기 때문에 저장 과정 을 사용 하여 효율 을 높 였 다.(3)네트워크 트 래 픽 을 줄인다.저장 프로 세 스 는 서버 에 있 습 니 다.호출 할 때 저장 프로 세 스 의 이름과 매개 변수 만 전달 하면 되 기 때문에 네트워크 전송 데이터 의 양 을 낮 출 수 있 습 니 다.(4)안전성.매개 변수 화 된 저장 과정 은 SQL 주입 식 공격 을 방지 할 수 있 고 Grant,Deny,Revoke 권한 을 저장 과정 에 적용 할 수 있 습 니 다.
자,만 든 기본 문법 을 살 펴 보 자.
저장 프로시저 정의 문법
CREATEPROC[EDURE]저장 프로 세 스 이름@매개 변수 1 데이터 형식=기본 값,...,@매개 변수 n 데이터 형식 OUTPUTASSQL 구문 GO 매개 변 수 는 선택 할 수 있 는 매개 변수 로 입력 매개 변수,출력 매개 변수 입력 매개 변 수 는 기본 값 을 허용 합 니 다.여기 서 간단 한 저장 프로 세 스 를 만 듭 니 다.
CREATE PROCEDURE UserLogin@namevarchar(20),@password varchar(20)AS--암 호 를 저장 할 임시 변 수 를 정의 합 니 다-DECLARE@strPwd NVARCHAR(20)변 수 를 소개 하지 않 습 니 다.잠시 후 글 은 BEGINselect*from userinfo where username=@name and userPass=@passwordenDGO 에 대해 자세히 설명 할 것 입 니 다.우선 우 리 는 간단 한 sql 로 select*from userinfo where username='admin'조회 결 과 를 조회 합 니 다.
이제 저장 프로 세 스 exec UserLogin admin,admin-또는 이렇게 호출 합 니 다:EXEC UserLogin@name='admin',@password='admin'
검색 결과:사용자 이름 UserPassAdmin Admin
SQL SERVER 에서 모든 사용자 가 정의 하 는 변 수 는'@'으로 시작 합 니 다.OUTPUT 키 워드 는 이 매개 변 수 를 출력 하 는 데 사 용 됩 니 다.AS 다음 에 저장 과정 내용 입 니 다.이 코드 를'조회 분석 기'에서 한 번 만 실행 하면 SQL SERVER 는 현재 데이터베이스 에'UserLogin'이라는 저장 과정 을 만 듭 니 다.'기업 관리자'를 열 고 현재 작업 중인 데이터 베 이 스 를 선택 한 다음 왼쪽 트 리 목록 에서'프로 그래 밍 가능->저장 과정'을 선택 할 수 있 습 니 다.이 때 오른쪽 목록 에서 방금 만 든 저장 과정 을 볼 수 있 습 니 다(없 으 면 새로 고침 하면 됩 니 다).데이터 에서 저장 과정 을 호출 하 는 방법 은 두 가지 가 있 음 을 보 았 습 니 다.
EXEC 프로 세 스 이름 매개 변수 1,매개 변수 2,....
혹은
EXEC 매개 변수 1=매개 변수 값 1,매개 변수 2=매개 변수 값 2....
위 에서 도 봤 어.
이런 저장 과정 을 만 드 는 것 이 무슨 소 용이 있 습 니까?데이터 에서 만 경 기 를 볼 수 있 는 것 이 아 닙 니 다.저 희 는 웹 이나 winform 프로그램 을 만 들 고 있 습 니 다.로그 인 이 필요 하 다 고 가정 합 니 다.좋 습 니 다.저 희 는 이 저장 과정 으로 로그 인 할 수 있 습 니 다.들 어 오 는 매개 변수 에 따라 기록 이 있 으 면 이 기록 은 데이터 베이스 에 존재 합 니 다.로그 인 성공 을 표시 하고 그렇지 않 으 면 실 패 했 습 니 다.이렇게 하 는 목적 은 더욱 안전 하고 sql 주입 을 방지 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기