데이터베이스 저장 프로세스와 트리거
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. 분류
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 # 신입 직원 정보표에서 정보를 삭제할 때 직원 정보표에 대응하는 정보를 삽입합니다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.