컴퓨터데이터베이스

SQL 저장 프로 시저 : 생성 및 사용

SQL 저장 프로 시저에 저장 될 수있는 실행 가능한 소프트웨어 모듈이다 데이터베이스 다양한 개체의 형태로. 즉, SQL 문을 포함하는 객체입니다. 이 저장 프로 시저는 좋은 성능을 얻을 수있는 클라이언트 응용 프로그램에서 실행할 수 있습니다. 또한, 이러한 시설은 종종 다른 스크립트에서 또는 다른 부분에서 호출된다.

소개

많은 사람들이 여러 가지의 절차와 유사하다고 생각 높은 수준의 프로그래밍 언어 (MS SQL을 제외하고, 각각). 아마도 이것은 사실이다. 그들은 비슷한 값을 발행 할 수 비슷한 매개 변수가 있습니다. 또한, 경우에 그들은 접촉. 예를 들어, 그들은 DDL의 데이터베이스와 DML 데이터뿐 아니라 사용자 기능 (- UDF 코드 명)와 결합된다.

실제로 저장된 SQL 절차는 프로세스간에 구별 장점의 넓은 범위가 있습니다. 안전, 다양성 프로그래밍 생산성 -이 모든 데이터베이스를 사용하는 사용자를 유치, 더 많은. 내가 이름«SQL Server Management Studio를»에서 "마이크로 소프트"에서 프로그램을 받았을 때 인기의 피크는 년 2005-2010 절차를했다. 의 도움으로, 데이터베이스와 작품은 훨씬 더 쉽게 더 실용적이고 편리되고있다. 년 년 후,이 정보를 전송하는 방법은 프로그래밍 환경에서 인기를 얻었다. 오늘, MS SQL 서버는 사용자가 데이터베이스와 "소통"을 위해 "엑셀"와 동등하게 서 절대적으로 일반적인 프로그램입니다.

프로 시저를 호출 할 때, 그것은 즉시 불필요한 프로세스 및 사용자 개입없이 서버에 의해 처리됩니다. 삭제, 실행, 변경 : 그런 다음 정보가 모든 작업을 수행 할 수 있습니다. 이 모든 동안 혼자 힘으로 그 객체에 복잡한 작업을 수행하는 DDL-연산자입니다. 그리고 그것은 모두가 매우 빠르게 발생하고, 서버가 실제로로드되지 않습니다. 이 속도와 생산성이 빠르게 서버와 그 반대로 사용자로부터 많은 양의 정보를 전송할 수 있습니다.

정보와이 작품을 구현하려면 여러 프로그래밍 언어 기술이있다. 다음은, 예를 들어,에서, PL은 / SQL 등 데이터베이스 관리 시스템 인터베이스와 파이어 버드 시스템에서 오라클, PSQL뿐만 아니라 고전 "maykrosoftovskih»거래-SQL을. 그들 모두는 만들고 대용량 데이터베이스 핸들러에 자신의 알고리즘을 사용할 수 있도록 저장 프로 시저를 실행하도록 설계되었습니다. 이 필요하며, 이러한 정보의 관리를 수행하는 사람은, 허가받지 않은 제 3 자 따라서, 생성, 수정 또는 특정 데이터의 삭제에서 모든 개체를 보호 할 수 있도록.

생산력

이 데이터베이스 오브젝트는 다른 방식으로 프로그래밍 할 수 있습니다. 이를 통해 사용자는 시간과 에너지를 절약 할 가장 적절한 것 과정의 유형을 선택할 수 있습니다. 또한, 절차 자체에 따라서 서버와 사용자 사이의 통신에 소요되는 막대한 시간을 피 처리된다. 모듈은 재 프로그래밍 절대적으로 모든 시간에 올바른 방향으로 변화 될 수있다. 속도에 주목 특히 가치가있는 SQL 저장 프로 시저의 출시가 발생하는 과정은 편리하고 융통성있게 만들고, 그것과 유사 빨리 다른 것입니다.

안전

정보 처리의이 유형은 향상된 보안을 제공하는 유사한 프로세스와 다르다. 이는 액세스 절차에서 다른 사용자가 완전히 제거 될 수 있다는 사실에 의해 보장된다. 이것은 관리자가 차단하거나 데이터베이스에 대한 무단 액세스의 두려움없이 독립적으로 그들과 함께 작업을 수행 할 수 있습니다.

데이터 전송

저장된 SQL 절차 및 클라이언트 응용 프로그램 사이의 통신 매개 변수를 사용하여 값을 반환하는 것입니다. 후자는 저장 프로 시저로 데이터를 송신 할 필요는 없지만, (주로 사용자의 요청에 따라) 정보와 SQL위한 처리. 일단 저장된 과정은 방법하는 예 저장된 SQL 절차 및 복귀에 대한 호출로서 구현 될 수있는 다양한을 사용하여 호출 애플리케이션 (원하는 경우, 또하지만) 다시 데이터 패킷을 전송하고, 그 작업을 완료 :

- 데이터 송신 출력 변수 형태 비아;

- return 문을 통해 데이터 전송;

- 캐리어를 통해 선택 데이터 전송.

그리고 지금이 과정이 동일한 내부를 보는 방법을 확인합니다.

만들기 1. SQL 프로 시저에 EXEC를-저장

당신은 MS SQL (Managment를 스튜디오)에서 프로 시저를 만들 수 있습니다. 절차가 생성 된 후,이 절차는 생성 오퍼레이터에 의해 수행되는 프로그램 데이터베이스 노드에 나열된다. 개체 이름을 포함 EXEC-프로세스를 사용하여 SQL 저장 프로 시저를 실행합니다.

이름을 만드는 것이 먼저 절차를 제공하고, 때 그에게 할당 된 하나 개 이상의 매개 변수를했다. 매개 변수는 선택 사항이 될 수 있습니다. 매개 변수 (들) 후, 절차의 몸 즉, 일부 필요한 작업을 수행 할 필요가 기록 될 수 있습니다.

사실은 몸은에있는 지역 변수를 가질 수 있습니다, 이러한 변수는 로컬 및 절차의 관계에 있습니다. 즉, 그것들은 오직 바디 트리트먼트 내에서 고려 될 수있다 마이크로 소프트 SQL 서버. 이 경우 저장 프로 시저 지역으로 간주됩니다.

따라서, 프로세스를 생성하기 위해, 우리는 프로 시저 이름과 프로 시저 본문 적어도 하나 개의 매개 변수가 필요합니다. 이 경우 훌륭한 옵션이 분류의 스키마 이름과 절차의 생성 및 구현이 있습니다.

프로 시저 몸은 등등, 테이블의 하나 개 이상의 행을 삽입, 테이블을 작성할 데이터베이스 유형 및 문자를 확립하고, 예를 들어, 연산자 SQL의 어떤 종류를 가질 수있다. 그럼에도 불구하고, 프로시 듀어는 일부 작업을 제한합니다. 가장 중요한 제한의 일부는 다음과 같습니다 :

- 몸은 다른 저장 프로 시저를 생성하지 않습니다;

- 몸은 개체에 대한 잘못된 인상을 만들 수 없습니다해야합니다

- 몸은 트리거를 작성하지 않습니다.

프로 시저의 본문에 변수를 설정합니다

당신은 신체의 절차에 변수가 지방 만들 수 있습니다, 그리고 그들은 프로 시저 본문 내에서 될 것입니다. 좋은 방법은 저장 프로 시저 본문의 시작 부분에 변수를 만드는 것입니다. 그러나 당신은 또한 객체의 본문에 아무 곳이나 변수를 설정할 수 있습니다.

때때로 당신은 몇 가지 변수가 같은 행에 설정하고, 쉼표로 구분하여 각각의 변수 것을 알 수 있습니다. 또한 변수는 @로 시작되어 있습니다. 프로 시저의 본문에, 당신은 당신이하고자하는 변수를 설정할 수 있습니다. 예를 들어, NAME1 @ 변수는 프로 시저 본문의 끝으로 발표 할 수있다. 변수에 값을 할당하기 위해 개인 데이터의 세트를 이용하여 선언. 둘 이상의 변수가 동일한 행에 선언 된 상황과는 대조적으로, 개인 데이터의 한 세트 만이 상황에서 사용된다.

"어떻게 절차의 본문에 하나의 문에 여러 값을 할당하는 '음 : 사용자는 종종 질문을 부탁드립니다. 재미있는 질문은, 그러나 이것은 당신이 생각하는 것보다 훨씬 쉽다. 답 :«선택 var에 = 값 같은 쌍 도움으로 ". 쉼표로 구분이 쌍을 사용할 수 있습니다.

3. SQL 저장 프로 시저 만들기

사람들의 예의 다양한에서 간단한 저장 프로 시저를 만들고 표시하고 그것을 실행합니다. 그러나, 절차는 호출 프로세스가 IT (항상은 아니지만)에 가까운 값을 갖게됩니다 이러한 매개 변수를 취할 수있다. 가 일치하면, 신체 내에서 해당 프로세스를 시작합니다. 예를 들어, 호출자에서 도시 및 지역을 가지고 저자는 해당 도시와 지역을 참조 양에 대한 데이터를 반환하는 프로 시저를 작성합니다. 절차는이 계산 저자을 수행하기 위해, 예를 들어, 술집을 위해, 저자의 데이터베이스 테이블을 쿼리합니다. 이러한 데이터베이스를 구하려면, 예를 들어, 구글은 SQL2005 페이지와 SQL 스크립트를 다운로드합니다.

앞의 예에서, 절차는 영어로 조건부 @state 및 @City라는 것 두 개의 매개 변수를 취한다. 데이터 타입은 어플리케이션에 지정된 타입에 대응한다. 절차 본체 내부 변수 @TotalAuthors (모든 저자)를 가지고 있으며,이 변수는 그들의 수를 표시하는 데 사용된다. 다음 섹션 선택 요청을 모두 계산 온다. 마지막으로, 계산 된 값은 인쇄 문을 사용하여 출력 창에 표시됩니다.

는 SQL 저장 프로 시저를 수행하는 방법

절차를 수행하는 방법은 두 가지가 있습니다. 첫 번째 방법은 쉼표로 구분이 프로 시저 이름 후에 행해진 같은 파라미터를 전달하여 나타낸다. 우리는 (앞의 예에서와 같이) 두 개의 값이 있다고 가정. 이러한 값은 변수 @state @City 절차를 이용하여 수집된다. 이 방법에서는, 송신 순서의 중요한 파라미터. 이 방법은 인수의 전송 시퀀스라고합니다. 두번째 방법에서, 상기 파라미터는 이미 순서가 중요하지 않은 경우에 직접 할당된다. 두 번째 방법은 명명 된 인수의 전송로 알려져있다.

절차는 약간 전형적인에서 벗어날 수 있습니다. 모든 앞의 예에서와 동일하지만, 매개 변수 만 여기에 이동합니다. 즉 @City 매개 변수가 먼저 저장되고, @state 다음 기본값으로 저장됩니다. 기본 설정은 일반적으로 개별적으로 할당됩니다. SQL 저장 프로 시저는 간단한 매개 변수입니다. 이 경우, 옵션 CA ""는 UT가 '의 기본 값을 대체 "제공. 제 2 실시 예는 하나 개의 @City에 대한 인수 값, "CA"에 @state 옵션 기본값을 전달합니다. 숙련 된 프로그래머는 모든 기본 변수는 매개 변수 목록의 마지막에 가까이 위치하는 것을 권장합니다. 그렇지 않으면, 실행은 당신이 더 길고 명명 된 인수 복잡한이 전송 작업을해야 할 수 없습니다.

4. 저장 프로 시저 SQL 서버 : 반환 방법

호출 된 프로 시저에 저장된 데이터를 보낼 수있는 세 가지 방법이 있습니다. 그들은 아래에 나열되어 있습니다 :

- 반환 값 저장 프로 시저를;

- 출력 매개 변수를 저장 프로 시저;

- 저장 프로 시저 중 하나를 선택합니다.

SQL 저장 프로 시저의 4.1 반환 값

이 과정에서, 상기 절차는 로컬 변수의 값을 설정하고 그것을 반환한다. 절차는 직접 상수 값을 반환 할 수 있습니다. 다음 예제에서, 우리는 스폰서의 총 수를 반환하는 절차를 만들었습니다. 우리는이 이전 절차와 비교하면 출력의 값이 역으로 대체되는 것을 볼 수 있습니다.

이제 그것을 반환 절차를 수행하고 값을 표시하는 방법을 살펴 보자. 수행 절차를 확립하고, 처리 후에 수행되는 가변 인쇄해야. 대신 연산자를 인쇄하는 예를 들어, 선택 @RetValue 및 OutputValue를 들어, 선택 연산자를 사용할 수 있습니다 알 수 있습니다.

4.2 출력 매개 변수 SQL 저장 프로 시저

응답 값은 우리가 앞의 예에서 본 하나의 변수를 반환하는 데 사용할 수 있습니다. 절차를 출력 할 수 있습니다 사용하면 발신자에 하나 개 이상의 변수를 보낼 수 있습니다. 프로 시저를 만들 때 출력 매개 변수는 시간으로이 키 워드«출력»를 표시된다. 파라미터는 출력 파라미터로서 지정되는 경우, 절차 오브젝트는 값을 할당한다. 최종 정보 복귀 이러한 경우에, 아래에 볼 수있는 예들이 저장 프로 시저 SQL.

이 예에서, 두 개의 주말 이름이있을 것이다 : @TotalAuthors 및 @TotalNoContract. 그들은 매개 변수 목록에 지정되어 있습니다. 이들 변수는 체내 시저 값이 할당된다. 우리는 출력 매개 변수를 사용하면, 호출 프로 시저 체에 설정된 값을 참조 할 수있다.

또한, 이전의 시나리오에서, 두 변수는 프로 시저, 출력 파라미터로서 MS SQL 서버에 설치되어있는 값을 참조로 선언된다. 그런 다음 절차는 정상적인 값«CA»매개 변수를 적용하여 수행됩니다. 다음의 파라미터는 따라서, 변수는 소정의 방식으로 전달 선언 출력하고. 가변 출력 키워드도 여기에 지정된 경우주의하시기 바랍니다. 프로 시저가 성공적으로 완료되면, 출력 매개 변수를 사용하여 반환 된 값은 메시지 창에 표시됩니다.

4.3 SQL 저장 프로 시저를 선택

이 기술은 프로 시저를 호출하는 형태로 나타난 데이터 값 (레코드 집합)의 세트를 리턴하는 데 사용된다. 이 예에서, SQL이 매개 변수의 @AuthId에 의해 반환 된 레코드를 필터링하여 테이블 "저자"를 요청 @AuthID 매개 변수를 사용하여 저장 프로 시저. 선택 연산자는 저장 프로 시저를 호출에 반환해야하는지 결정합니다. 저장 프로 시저가 다시 전송 권한 ID합니다. 이러한 절차는 항상 하나 개의 레코드 만 또는 전혀를 반환합니다. 그러나, 저장 프로 시저 하나 개 이상의 항목의 반환에 대한 제한이 없습니다. 종종 예는 계산 된 변수와 파라미터를 이용하여 선택된 상기 리턴 데이터 합계 값을 복수 제공함으로써 이루어진다 찾을 수있다.

결론적으로

저장 프로 인해 클라이언트 응용 프로그램에 필요한 변수를 설정뿐만 아니라, 반환 또는 전송, 꽤 심각한 프로그램입니다. 저장된 절차는 서버 자체에서 실행되기 때문에, 서버 (일부 계산) 클라이언트 애플리케이션 사이에 대량의 데이터 교환을 회피 할 수있다. 이로써 물론, 그들의 소유자의 손으로, SQL 서버에 부하를 줄일 수 있습니다. 아종 중 하나는 T SQL 저장 프로 시저를하고 있지만 그들의 연구는 인상적인 데이터베이스의 생성에 관여하는 사람들에게 필요하다. 저장 프로 시저의 연구에 유용 할 수 뉘앙스의 큰에도 엄청난 양도 있습니다, 그러나, 계획들에 대해이 필요 전문적 포함, 꽉 프로그래밍을 할 수 있습니다.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ko.delachieve.com. Theme powered by WordPress.