SQL Server를 사용하여 애플리케이션 개발
저장 프로시저 및 트리거 작성
저장 프로시저 및 트리거는 사용자가 만들고 서버에 상주하는 Transact SQL 쿼리 문 집합입니다. 트리거는 특정 조건에서 시스템에 의해 실행됩니다. 저장 프로시저는 애플리케이션 성능을 향상시킬 수 있습니다. 클라이언트 프로그램이 데이터에 액세스해야 하는 경우 일반적으로 데이터에 액세스하기 위해 5단계를 거쳐야 합니다.
1) 쿼리 문이 서버로 전송됩니다.
2) 서버는 SQL 코드를 컴파일합니다.
3) 생성된 쿼리의 실행 계획을 최적화합니다.
4) 데이터 엔진이 쿼리를 실행합니다.
5) 결과는 클라이언트 프로그램으로 다시 전송됩니다.
저장 프로시저는 생성될 때 컴파일됩니다. 저장 프로시저가 처음 실행될 때 SQL Server는 쿼리 실행 계획을 생성하고 나중에 사용할 수 있도록 저장합니다. 저장 프로시저를 통해 요청하는 경우 위의 2단계와 3단계가 더 이상 필요하지 않으므로 시스템 성능이 크게 향상될 수 있습니다. 1단계에서도 성능이 향상됩니다. 이때 서버로 보내는 명령문은 크고 복잡한 쿼리가 아닌 저장 프로시저의 EXECUTE 문일 뿐이기 때문이다. 이 기능은 네트워크 트래픽을 줄여줍니다.
성능 향상 외에도 저장 프로시저는 애플리케이션을 중앙 집중식으로 유지 관리하는 편리함도 제공합니다. 쿼리를 애플리케이션에 포함하는 경우. 쿼리를 변경해야 하는 경우 애플리케이션을 다시 컴파일하고 모든 클라이언트에 다시 게시해야 합니다. 저장 프로시저에서는 수정 사항이 사용자에게 투명하게 표시됩니다. 서버에서 저장 프로시저를 다시 컴파일하기만 하면 됩니다.
저장 프로시저는 보안 메커니즘도 제공합니다. 사용자는 저장 프로시저에서 명령을 실행할 수 있는 권한이 없더라도 저장 프로시저 자체를 실행할 수 있는 권한을 가질 수 있습니다. 시스템 관리자가 사용자에게 데이터 수정(UPDATE, INSERT 및 DELETE) 권한을 부여하지 않는 경우도 있습니다. 생성된 저장 프로시저는 이러한 작업을 수행할 수 있습니다. 물론 사용자에게는 저장 프로시저를 실행할 수 있는 권한이 있어야 합니다.
저장 프로시저 만들기
저장 프로시저는 다음 목적을 달성할 수 있습니다.
· 매개 변수 사용.
· 반환 상태 값.
· 다른 저장 프로시저를 호출합니다.
· 원격 서버에서 실행됩니다.
저장 프로시저의 "sysobjects" 시스템 테이블에 항목이 있으며 해당 유형은 "P"입니다. 저장 프로시저의 텍스트는 "syscomments" 시스템 테이블에 저장됩니다. 저장 프로시저를 만들려면 Transact SQL 명령 CREATE PROCEDURE를 사용합니다.
예:
USE pubs
GO
CREATE PROCEDURE ap_GetAuthorsForPublisher
AS
SELECT a.au _lname,a.au_fname
FROM Authors a, titleauthor ta, titles t , 출판사 p
WHERE a.au_id = ta.Au_id
AND ta.Title_id = t.title_id
AND t.pub_id = p.pub_id
AND p.pub_name = 'New Moon Books '
GO
CREATE PROCEDURE 문의 구문은 다음과 같습니다.
CREATE PROC[DURE] 프로시저_이름 [;number]
[WITH { RECOMPILE | ENCRYPTION}]
~ [ 복제용] 그룹화는 drop 프로시저 문을 통해 모든 프로시저를 하나의 그룹으로 결합합니다.
@parameter_name은 매개변수의 이름을 지정합니다.
RECOMPILE은 프로세스가 실행될 때마다 컴파일이 필요하다는 의미입니다.
ENCRYPTION은 프로세스의 텍스트가 "syscomments" 테이블에서 암호화되어야 함을 나타냅니다.
FOR REPLICATION은 제출 서버에서 프로세스를 실행할 수 없음을 나타냅니다.
저장 프로시저에 매개변수 전달
저장 프로시저는 매개변수를 허용할 수 있습니다.
참고: 프로세스의 매개변수는 사용자 정의 데이터 유형일 수도 있습니다.
매개변수에 기본값을 지정
사용자는 저장 프로시저의 매개변수에 대한 기본값을 정의할 수도 있습니다. 실행 시 필수 매개변수가 제공되지 않으면 시스템은 기본값을 매개변수로 사용합니다. 실행 시 기본값이 정의되지 않고 매개 변수도 제공되지 않으면 SQL Server는 오류를 반환합니다. 저장 프로시저에서 기본값을 정의하고 일부 로직을 사용하여 매개변수 지정 여부를 감지하고 적절한 조치를 취하는 것이 좋습니다.
예:
USE pubs
GO
CREATE PROCEDURE ap_GetAuthorsForPublisher
@PublisherName varchar(40) = 'New Moon Books'
AS
SELECT a.au_lname , a.au_fname
작성자 a, titleauthor ta, 제목 t, 출판사 p
WHERE a.au_id = ta.Au_id
AND ta.Title_id = t.title_id
AND t.pub_id = p . pub_id
AND p.pub_name = @PublisherName
GO
위 내용은 SQL Server 7.0(V) 시작하기의 내용입니다. 자세한 내용은 PHP 중국어를 참고하세요. 홈페이지(www.php.cn)!