찾다
php教程PHP开发SQL Server 트리거 생성, 삭제, 수정, 보기

1: 트리거는 명시적으로 호출할 수 없지만 레코드가 테이블에 삽입, 업데이트 또는 삭제될 때 자동으로 활성화되는 특수 저장 프로시저입니다. 따라서 트리거를 사용하여 테이블에 대한 복잡한 무결성 제약 조건을 구현할 수 있습니다.

두 번째: SQL Server는 각 트리거에 대해 삽입된 테이블과 삭제된 테이블이라는 두 개의 전용 테이블을 생성합니다. 이 두 테이블은 시스템에 의해 유지 관리되며 데이터베이스가 아닌 메모리에 존재합니다. 이 두 테이블의 구조는 항상 트리거에 의해 작동되는 테이블의 구조와 동일합니다. 트리거 실행이 완료되면 해당 트리거와 관련된 두 개의 테이블도 삭제됩니다.

삭제된 테이블에는 삭제 또는 업데이트 문 실행으로 인해 테이블에서 삭제될 모든 행이 저장됩니다.

Inserted 테이블은 Insert 또는 Update 문 실행으로 인해 테이블에 삽입될 모든 행을 저장합니다.

세 가지: 대신 및 이후 트리거

SQL Server2000은 두 가지 트리거, 즉 대체 및 이후 트리거를 제공합니다. 이 두 트리거의 차이점은 동일한 방식으로 활성화된다는 점입니다.

트리거 대신 트리거를 실행하는 T-SQL 문을 대체하는 데 사용됩니다. 테이블 외에도 보기에서 지원할 수 있는 업데이트 작업을 확장하기 위해 트리거 대신 트리거를 사용할 수도 있습니다.

After 트리거는 Insert, Update 또는 Deleted 문 후에 실행되며 제약 조건 확인과 같은 작업은 After 트리거가 활성화되기 전에 발생합니다. 이후 트리거는 테이블에서만 사용할 수 있습니다.

테이블 또는 뷰의 각 수정 작업(삽입, 업데이트 및 삭제)은 대신 ​​트리거를 가질 수 있으며, 테이블의 각 수정 작업은 여러 개의 After 트리거를 가질 수 있습니다.

4: 트리거 실행 프로세스

Insert, update 또는 delete 문이 제약 조건을 위반하는 경우 제약 조건 확인이 After 트리거에 있기 때문에 After 트리거가 실행되지 않습니다. . 따라서 After 트리거는 제약 조건을 초과할 수 없습니다.

 대신 트리거를 실행한 작업 대신 트리거를 실행할 수 있습니다. 삽입된 테이블과 삭제된 테이블이 방금 생성되고 다른 작업이 발생하지 않은 경우 실행됩니다. 대신 트리거는 제약 조건 이전에 실행되므로 제약 조건의 일부 사전 처리를 수행할 수 있습니다.

5: T-SQL 문을 사용하여 트리거 만들기

기본 문은 다음과 같습니다.

create Trigger Trigger_name

on {table_name |

 {for | After 대신 }

 [ insert, update,delete ]

 as

 sql_statement

 Trigger :

기본 설명은 다음과 같습니다.

drop Trigger Trigger_name

7: 데이터베이스의 기존 트리거 보기:

-- 기존 트리거 보기 데이터베이스

jxcSoftware 사용

이동

xtype='TR'

인 sysobjects에서 * 선택 - 단일 트리거 보기

exec sp_helptext 'Trigger name'

8: 트리거 수정:

기본 설명은 다음과 같습니다.

Alter Trigger Trigger_name

on {table_name | view_name}

 {for | After 대신 }

 [ 삽입, 업데이트, 삭제 ]

 sql_statement

9: 관련 예 :

1: Orders 테이블에 트리거를 생성합니다. Orders 테이블에 주문 레코드를 삽입할 때 상품 테이블의 상태가 1(organizing)인지 확인합니다. 주문 테이블에 삽입하세요.

 트리거 주문 삽입

 주문시

 삽입 후

 

 if(상품에서 상태 선택,삽입

where products.name=inserted.goodsname)=1

시작

print '상품이 처리 중입니다'

print '주문을 확정할 수 없습니다'

트랜잭션 롤백 -- 롤백, 추가 방지

end

2: Orders 테이블에 삽입 트리거를 생성하고, 주문을 추가할 때 Goods에서 해당 제품 기록을 줄입니다. 테이블 재고 있음.

주문 시

트리거 orderinsert1

삽입 후

업데이트 상품 세트 저장=storage-inserted.Quantity

로 생성 >

from products,inserted

where

products.name=inserted.goodsname

3: Goods 테이블에 삭제 트리거를 생성하여 Goods 테이블을 구현하고 Orders 테이블 계단식 삭제.

트리거 상품 삭제

상품

삭제 후

주문에서 삭제

상품 이름이 있는 곳

 (삭제된 이름 선택)

 4: Orders 테이블에 업데이트 트리거를 생성하고 Orders 테이블의 주문 날짜(OrderDate) 열을 수동으로 수정할 수 없도록 모니터링합니다.

orderdateupdate 트리거 생성

주문 시

업데이트 후

as

if update(orderdate)

start

Raiserror('orderdate can be수정',10,1)

트랜잭션 롤백

end

5: Orders 테이블에 삽입 트리거를 생성하여 주문이 Orders로 전송되는지 확인하십시오. 테이블에 삽입된 제품 이름은 Goods 테이블에 있어야 합니다.

주문에 대한 트리거 orderinsert3

생성

삽입 후

 as

 if (상품에서 개수(*) 선택, products.name=inserted.goodsname에 삽입됨)=0

 begin

 print ' 항목 없음 이 주문에 대한 상품'

트랜잭션 롤백

end

6: Orders 테이블에 삽입된 제품 정보가 추가되도록 Orders 테이블에 삽입 트리거를 만듭니다. Order 테이블

alter Trigger addOrder

on Orders

for insert

as

insert into Order

삽입된 ID, 삽입됨.goodName, 삽입됨.번호 선택


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전