데이터베이스 저장 프로세스와 트리거

5110 단어 데이터베이스
기억 장치
1. 개요 저장 프로세스(Stored Procedure)는 특정 기능을 완성하기 위한 SQL 문장 집합으로 컴파일하여 데이터베이스에 저장한다.저장 프로세스는 프로그램 흐름, 논리와 데이터베이스에 대한 조회를 포함할 수 있다.그것들은 매개 변수, 출력 매개 변수, 한 개 혹은 여러 개의 결과 집합을 되돌려주고 값을 되돌려줄 수 있다.2. 저장 프로세스 분류
① 시스템 저장 프로세스
sp시작은 시스템의 각종 설정을 진행하는 데 쓰인다.정보를 얻다.관련 관리 업무.sp_who/sp_helpdb/sp_monitor
② 로컬 저장 프로세스
사용자가 만든 저장 프로세스는 사용자가 특정한 기능을 만들고 완성하는 저장 프로세스로 사실상 일반적으로 말하는 저장 프로세스는 로컬 저장 프로세스를 가리킨다.
③ 임시 저장 프로세스
두 가지 스토리지 프로세스로 나눌 수 있습니다.
첫째, 로컬 임시 저장 프로세스는 우물 번호(#)를 이름의 첫 번째 문자로 하고 이 저장 프로세스는tempdb 데이터베이스에 저장된 로컬 임시 저장 프로세스가 되며 이를 만든 사용자만 실행할 수 있다.
둘째, 전역 임시 저장 프로세스는 두 개의 우물 번호(##) 번호로 시작하면 이 저장 프로세스는tempdb 데이터베이스에 저장된 전역 임시 저장 프로세스가 될 것이다. 전역 임시 저장 프로세스가 만들어지면 서버에 연결된 모든 사용자가 실행할 수 있고 특정한 권한이 필요하지 않다.
④ 원격 저장 프로세스
SQL Server2005에서 원격 저장 프로세스(Remote Stored Procedures)는 원격 서버에 있는 저장 프로세스로 분포식 조회와 EXECUTE 명령을 사용하여 원격 저장 프로세스를 수행할 수 있다.
⑤ 확장 저장 프로세스
확장 저장 프로세스(Extended Stored Procedures)는 사용자가 외부 프로그램 언어로 작성할 수 있는 저장 프로세스이며, 확장 저장 프로세스의 이름은 보통 xp첫머리3. 저장 구문 형식 만들기:Create procedure procedurename
[@parameter data_type][output]
[with]{recompile|encryption}
as
sql_statement
설명:
output: 이 인자는 되돌릴 수 있음을 표시합니다
with {recompile|encryption}
recompile: 이 저장 프로세스를 실행할 때마다 다시 컴파일하는 것을 표시합니다
encryption: 생성된 저장 프로세스의 내용이 암호화됩니다
호출 저장 프로세스: 기본 문법: exec spname [매개 변수 이름] 저장 프로세스 삭제: 기본 구문:drop procedure spname 수정 저장 프로세스: Alter PROCEDURE procedurename with FOR REPLICATION AS sql_statement
실례 분석
create  procedure  proc_student   #      
@sex  varchar(10)
AS
select  *  from        where    =@sex   #            

exec proc_student  @sex=" "      #           

중첩 저장 프로세스
alter proc get_calssinfo  #      
as
select * from         #        
exec get_student ' '
print @@NESTLEVEL         #      

exec get_calssinfo      #        

트리거
1. 트리거는 무엇입니까?트리거는 지정한 테이블의 데이터를 수정할 때 실행되는 저장 프로세스입니다.트리거를 만들어서 서로 다른 표의 논리 관련 데이터의 인용 완전성이나 일치성을 강제로 실현합니다.사용자가 트리거를 돌릴 수 없기 때문에 복잡한 업무 규칙을 강제로 실시하여 데이터의 완전성을 확보할 수 있다.트리거는 우리가 말한 저장 과정과 달리 트리거는 주로 이벤트를 통해 트리거되어 실행된다.저장 프로세스는 저장 프로세스 이름을 통해 직접 호출될 수 있다.2. 분류
  • DDL 트리거 - 서버나 데이터베이스에서 데이터 정의 언어(DDL) 이벤트가 발생하면 호출되며, 다음 작업을 수행하려면 DDL 트리거를 사용할 수 있습니다.예를 들어 수정표, 수정열, 신설표, 신설열 등이다.이것은 데이터베이스 구조에 변화가 발생할 때 실행된다. 우리는 주로 이를 이용하여 데이터베이스의 수정 과정을 기록하고 프로그램원이 데이터베이스에 대한 수정을 제한한다. 예를 들어 특정한 표를 삭제하는 것을 허락하지 않는다.
  • DML 트리거 DML, 데이터 조작 언어, 데이터베이스에 있는 테이블의 데이터가 변할 때 insert, update, delete를 포함하여 임의로 조작한다. 만약에 우리가 이 테이블에 대응하는 DML 트리거를 썼다면 이 트리거는 자동으로 실행된다.DML 트리거의 주요 역할은 업무 규칙을 강제로 집행하고 Sql 서버 제약, 기본값 등을 확장하는 데 있다.제약은 같은 테이블의 데이터만 제약할 수 있고 트리거에서는 임의의 Sql 명령을 실행할 수 있다는 것을 알고 있기 때문이다.

  • 3. 구문 DML 구문 형식: CREATE TRIGGER triggername ON{table|view} { {{FOR|INSERT|UPDATE|DELETE}} AS sql_statement }
    DDL 트리거:구문 형식: CREATE TRIGGER triggername ON {all server|database} WITH ENCRYPTION {FOR|AFTER|{event_type} AS sql_statement }
    실례 분석
    DML
    create trigger  T_addnum
    on      
    for insert/delete/update
    as
    update      set     =    +1
    where      =(select      from inserted)

    DDL
    create  trigger  T_notdelete
    on  database
    for  Drop_table,alter_table
    AS
       PRINT '       ,             !'
       ROLLACK

    네스트된 트리거
    create trigger t_직원 정보 for delete as insert into 직원 정보(직원 번호, 직원 이름, 부서 번호, 직무 번호, 성별) select 직원 번호, 직원 이름, 부서 번호, 직무 번호, 성별from deleted # 신입 직원 정보표에서 정보를 삭제할 때 직원 정보표에 대응하는 정보를 삽입합니다

    좋은 웹페이지 즐겨찾기