저장 프로세스란 무엇입니까?

4286 단어 저장 프로세스
정의:
자주 사용되거나 복잡한 작업을 SQL 문장으로 미리 작성하고 지정한 이름으로 저장하면 앞으로 데이터베이스에 정의된 저장 프로세스와 같은 기능을 제공하는 서비스를 제공할 때excute를 호출하면 자동으로 명령을 완성할 수 있습니다.
여기까지 말하자면 저장 과정은 한 무더기SQL의 문장일 뿐이라는 질문이 있을지도 모른다.
Microsoft는 왜 이 기술을 추가해야 합니까?
그렇다면 저장 과정은 일반적인 SQL 문장과 어떤 차이가 있습니까?
스토리지 프로세스의 이점:
1. 저장 프로세스는 창조할 때만 컴파일하고 이후에 매번 저장 프로세스를 실행할 때마다 다시 컴파일할 필요가 없다. 일반SQL 문장은 실행할 때마다 한 번씩 컴파일하기 때문에 저장 프로세스를 사용하면 데이터베이스 실행 속도를 높일 수 있다.
2. 데이터베이스에 대해 복잡한 조작을 할 때(예를 들어 여러 테이블에 Update, Insert,Query,Delete를 할 때) 이 복잡한 조작을 저장 프로세스로 봉하여 데이터베이스에서 제공하는 사무 처리와 결합하여 사용할 수 있다.
3. 저장 프로세스를 재사용할 수 있어 데이터베이스 개발자의 업무량을 줄일 수 있다.
4. 보안 수준이 높아 지정된 스토리지 프로세스에 대해 이 사용자만 사용하도록 설정할 수 있습니다.
저장 프로세스의 종류:
1. 시스템 스토리지 프로세스: sp시작은 시스템의 각종 설정을 진행하는 데 쓰인다.정보를 얻다.sp 와 같은 관련 관리 작업help는 지정된 대상에 대한 정보를 얻는 것이다
2. 스토리지 프로세스를 XP 로 확장운영체제에서 제공하는 기능을 호출하기 위해 시작
exec master..xp_cmdshell 'ping 10.8.16.1'
3. 사용자 정의 저장 프로세스, 이것이 우리가 가리키는 저장 프로세스이다
일반 형식Create procedure procedue_name
[@parameter data_type][output]
[with]{recompile|encryption}
as
ql_statement

설명:
output: 이 인자가 되돌아올 수 있음을 표시합니다
with {recompile|encryption}
recompile: 이 저장 프로세스를 실행할 때마다 다시 컴파일하는 것을 표시합니다
encryption: 생성된 저장 프로세스의 내용이 암호화됩니다
예:
표 북의 내용은 다음과 같다.
001 C $30
002 PowerBuilder $52

인스턴스 1: 쿼리 테이블 북의 컨텐츠 저장 프로세스create proc query_book
as
select * from book
go
exec query_book

실례2: 테이블 북에 기록을 넣고 이 테이블에 있는 모든 책의 총 금액을 조회합니다Create proc insert_book
@param1 char(10),@param2 varchar(20),@param3 money,@param4 money output
with encryption ---------
as
insert book( , , ) Values(@param1,@param2,@param3)
select @param4=sum( ) from book
go

실행 예:declare @total_price money
exec insert_book '003','Delphi ',$100,@total_price
print ' '+convert(varchar,@total_price)
go

저장 프로세스의 3가지 반환 값:
1. 리턴으로 정수 되돌리기
2. output 형식으로 매개 변수를 되돌려줍니다
3.Recordset
반환 값의 차이점:
output과return은 일괄 프로그램에서 변수로 수신할 수 있고,recordset은 일괄 프로그램을 실행하는 클라이언트로 전송됩니다
인스턴스 3: 두 개의 테이블이 Product, Order이고 테이블의 내용은 다음과 같습니다.Product

001 30
002 50
003 100
Order

001 $30
002 $50
003 $4

번호에 따라 연결 조건을 실현하고 두 테이블을 하나의 임시 테이블로 연결하십시오. 이 테이블은 번호만 포함합니다.제품 이름.고객 이름.계약금총 금액,
총 금액 = 계약금* 주문수, 임시표는 저장 과정 중
코드는 다음과 같습니다.Create proc temp_sale
as
select a. ,a. ,b. ,b. ,a. * b. as
into #temptable from Product a inner join Order b on a. =b.
if @@error=0
print 'Good'
else
print 'Fail'
go

좋은 웹페이지 즐겨찾기