>  기사  >  php教程  >  SQL Server의 저장 프로시저에 대한 기본 지식

SQL Server의 저장 프로시저에 대한 기본 지식

高洛峰
高洛峰원래의
2016-12-14 13:40:301244검색

저장 프로시저란 무엇인가요?
저장 프로시저는 실행 가능한 개체로 데이터베이스에 저장된 하나 이상의 SQL 명령입니다.
일반인의 관점에서 보면 저장 프로시저는 실제로 특정 작업을 완료할 수 있는 SQL 문 집합입니다.

그럼 저장 프로시저를 사용하는 이유는 무엇입니까?
1. 저장 프로시저는 생성될 때만 컴파일됩니다. 일반적으로 SQL 문은 실행될 때마다 다시 컴파일할 필요가 없습니다. 데이터베이스의 실행 속도를 향상시킵니다.
2. 데이터베이스에서 복잡한 작업을 수행할 때 복잡한 작업을 저장 프로시저에 캡슐화하고 데이터베이스에서 제공하는 트랜잭션 처리와 함께 사용할 수 있습니다.
3. 저장 프로시저를 재사용할 수 있어 데이터베이스 개발자의 작업량을 줄일 수 있습니다.
4. 높은 보안, 특정 사용자만 지정된 저장 프로시저를 사용할 권한을 갖도록 설정할 수 있습니다.

저장 프로시저를 사용하는 방법은 무엇인가요?
다음은 저장 프로시저에 대해 알아보기 위해 Student 테이블을 사용합니다. 저장 프로시저의 간단한 사용법을 이해하고 싶기 때문에 모든 예는 매우 간단합니다.

SQL Server의 저장 프로시저에 대한 기본 지식

매개변수가 없는 저장 프로시저:
Student 테이블에서 모든 정보를 선택합니다.

create proc StuProc
as      //此处 as 不可以省略不写
begin   //begin 和 end 是一对,不可以只写其中一个,但可以都不写
select S#,Sname,Sage,Ssex from student
end
go

매개변수가 있는 저장 프로시저:
전역 변수
전역 변수는 함수 외부에서 정의되며, 범위는 변수가 정의된 위치에서 시작하여 프로그램 파일의 끝에서 끝납니다.
지정된 이름의 학생정보 선택:

create proc StuProc
@sname varchar(100)   
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc '赵雷'   //执行语句

위는 외부에서 변수에 값을 할당하는 것이고, 아니면 내부적으로 변수의 기본값을 직접 설정할 수도 있습니다

create proc StuProc
@sname varchar(100)='赵雷'
as 
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go

exec StuProc

변수의 내용을 출력하려면 출력을 사용하면 됩니다

create proc StuProc
@sname varchar(100),
@IsRight int  output //传出参数
as 
if exists (select S#,Sname,Sage,Ssex from student where sname=@sname)
set @IsRight =1
else
set @IsRight=0
go

declare @IsRight int 
exec StuProc '赵雷' , @IsRight output
select @IsRight

위는 전역 변수이고, 로컬 변수에 대해 알아보겠습니다
로컬 변수는 내부 변수라고도 합니다. 지역 변수는 함수 내에서 정의됩니다. 그 범위는 함수 내부로 제한되며, 함수를 떠난 후에 그러한 변수를 사용하는 것은 불법입니다.
지역 변수 정의: 사용하기 전에 Declare 명령으로 설정해야 합니다. 선언{@변수 이름 데이터 유형}
지역 변수 할당 방법: set{@variable name=expression} 또는 select{@variable name=expression}
지역변수 표시: select @variable name

create proc StuProc
as 
declare @sname varchar(100)
set @sname='赵雷'
select S#,Sname,Sage,Ssex from student where sname=@sname
go

exec StuProc

지역변수의 데이터를 표시하고 싶다면?

create proc StuProc
as 
declare @sname varchar(100)
set @sname=(select Sname from student where S#=01)
select @sname
go

exec StuProc


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