sqlserver 저장 프로 세 스 문법 상세 설명
/*SP1*/
CREATE PROCEDURE dbo.getUserList
as
set nocount on
begin
select * from dbo.[userinfo]
end
go
이상 저장 과정 에서 userinfo 표 의 모든 기록 을 얻 고 기록 집합 을 되 돌려 줍 니 다.command 대상 을 통 해 이 저장 과정의 ASP 코드 를 다음 과 같이 호출 합 니 다.
'** Command **
DIM MyComm,MyRst
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = MyConStr 'MyConStr
MyComm.CommandText = "getUserList" '
MyComm.CommandType = 4 '
MyComm.Prepared = true ' SQL
Set MyRst = MyComm.Execute
Set MyComm = Nothing
저장 프로 세 스 에서 얻 은 기록 집합 은 MyRst 에 부여 되 며,다음은 MyRst 를 조작 할 수 있 습 니 다.상기 코드 에서 CommandType 속성 은 요청 한 유형 을 표시 하고 값 을 추출 하 며 다음 과 같이 설명 합 니 다.-1 CommandText 인자 의 종 류 를 정할 수 없 음 을 표시 합 니 다.1.CommandText 가 일반적인 명령 형식 임 을 나타 낸다.2.CommandText 매개 변 수 는 존재 하 는 표 이름 임 을 나타 낸다.4.CommandText 매개 변 수 는 저장 과정의 이름 이 고 Connection 대상 이나 Recordset 대상 을 통 해 저장 과정 을 호출 할 수 있다.방법 은 다음 과 같다.
'** Connection **
DIM MyConn,MyRst
Set MyConn = Server.CreateObject("ADODB.Connection")
MyConn.open MyConStr'MyConStr
Set MyRst = MyConn.Execute("getUserList",0,4) ' CommandType
Set MyConn = Nothing
'** Recordset **
DIM MyRst
Set MyRst = Server.CreateObject("ADODB.Recordset")
MyRst.open "getUserList",MyConStr,0,1,4
'MyConStr , CommandType
2.입 출력 이 없 는 저장 과정 은 다음 저장 과정 을 보십시오.
/*SP2*/
CREATE PROCEDURE dbo.delUserAll
as
set nocount on
begin
delete from dbo.[userinfo]
end
go
이 저장 과정 은 userinfo 표 의 모든 기록 을 삭제 합 니 다.입력 과 출력 이 없습니다.호출 방법 은 위 에서 말 한 것 과 대체적으로 같 습 니 다.기록 집합 을 얻 지 않 아 도 됩 니 다.
'** Command **
DIM MyComm
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = MyConStr 'MyConStr
MyComm.CommandText = "delUserAll" '
MyComm.CommandType = 4 '
MyComm.Prepared = true ' SQL
MyComm.Execute '
Set MyComm = Nothing
물론 Connection 대상 이나 Recordset 대상 을 통 해 이러한 저장 과정 을 호출 할 수 있 지만 Recordset 대상 을 만 드 는 것 은 기록 집합 을 얻 기 위해 서 입 니 다.기록 집합 을 되 돌려 주지 않 은 상태 에서 Command 대상 을 이용 하 십시오.3.반환 값 이 있 는 저장 과정 은 SP2 와 유사 한 작업 을 할 때 SQL Server 의 강력 한 사무 처리 기능 을 충분히 이용 하여 데이터 의 일치 성 을 유지 해 야 합 니 다.또한,저 희 는 실행 상황 을 되 돌려 야 할 수도 있 습 니 다.이 를 위해 SP2 를 다음 과 같이 수정 합 니 다.
/*SP3*/
CREATE PROCEDURE dbo.delUserAll
as
set nocount on
begin
BEGIN TRANSACTION
delete from dbo.[userinfo]
IF @@error=0
begin
COMMIT TRANSACTION
return 1
end
ELSE
begin
ROLLBACK TRANSACTION
return 0
end
return
end
go
이상 저장 과정 은 delete 가 순조롭게 실 행 될 때 1 을 되 돌려 줍 니 다.그렇지 않 으 면 0 을 되 돌려 주 고 스크롤 백 작업 을 합 니 다.ASP 에서 반환 값 을 얻 기 위해 서 는 Parameters 집합 을 이용 하여 인 자 를 설명 해 야 합 니 다.
'** **
DIM MyComm,MyPara
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = MyConStr 'MyConStr
MyComm.CommandText = "delUserAll" '
MyComm.CommandType = 4 '
MyComm.Prepared = true ' SQL
'
Set Mypara = MyComm.CreateParameter("RETURN",2,4)
MyComm.Parameters.Append MyPara
MyComm.Execute
'
DIM retValue
retValue = MyComm(0) ' retValue = MyComm.Parameters(0)
Set MyComm = Nothing
MyComm.Create Parameter("RETURN",2,4)에서 각 매개 변수의 의 미 는 다음 과 같다.첫 번 째 매개 변수("RETURE")는 매개 변수 이름 이다.매개 변수 이름 은 임의로 설정 할 수 있 지만 저장 과정 에서 설명 한 매개 변수 이름과 같 아야 합 니 다.여 기 는 반환 값 입 니 다.저 는 습관 적 으로'RETURE'로 설정 합 니 다.두 번 째 매개 변수(2)는 이 매개 변수의 데이터 형식 을 나타 내 고 구체 적 인 유형 코드 는 ADO 참고 를 참조 하 십시오.다음은 자주 사용 하 는 유형 코드 를 제시 합 니 다.
adBigInt: 20 ;
adBinary : 128 ;
adBoolean: 11 ;
adChar: 129 ;
adDBTimeStamp: 135 ;
adEmpty: 0 ;
adInteger: 3 ;
adSmallInt: 2 ;
adTinyInt: 16 ;
adVarChar: 200 ;
반환 값 에 대해 서 는 성형 만 할 수 있 고-1 부터-99 까지 는 보존 값 입 니 다.세 번 째 매개 변수(4)는 매개 변수의 성질 을 나타 내 는데 여기 4 는 이것 이 반환 값 임 을 나타 낸다.이 매개 변수 값 의 설명 은 다음 과 같 습 니 다.0:형식 을 확인 할 수 없습니다.1:매개 변 수 를 입력 하 십시오.2:매개 변 수 를 입력 하 십시오.3:입력 또는 출력 매개 변수;4:반환 값 이상 에서 제 시 된 ASP 코드 는 완전한 코드,즉 가장 복잡 한 코드 라 고 해 야 합 니 다.사실은
Set Mypara = MyComm.CreateParameter("RETURN",2,4)
MyComm.Parameters.Append MyPara
간소화 가능
MyComm.Parameters.Append MyComm.CreateParameter("RETURN",2,4)
심지어 계속 간소화 할 수도 있 고,잠시 후에 설명 할 수도 있다.파 라 메 터 를 저장 하 는 과정 에 대해 서 는 Command 대상 만 호출 할 수 있 습 니 다.4.입력 매개 변수 와 출력 매개 변수 가 있 는 저장 과정 반환 값 은 특수 한 출력 매개 변수 입 니 다.대부분의 상황 에서 저 희 는 입력 과 출력 매개 변 수 를 동시에 저장 하 는 과정 을 사용 합 니 다.예 를 들 어 저 희 는 사용자 정보 표 에서 특정한 ID 사용자 의 사용자 이름 을 얻 고 싶 습 니 다.이때 입력 매개 변수 인-사용자 ID 와 출력 매개 변수 인-사용자 이름 이 있 습 니 다.이 기능 을 실현 하 는 저장 과정 은 다음 과 같다.
/*SP4*/
CREATE PROCEDURE dbo.getUserName
@UserID int,
@UserName varchar(40) output
as
set nocount on
begin
if @UserID is null return
select @UserName=username
from dbo.[userinfo]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
우분투에 SQL 서버 설치Microsoft SQL Server는 오늘날 업계에서 가장 눈에 띄는 데이터베이스 중 하나입니다. 이번 포스팅에서는 우분투에 설치하는 방법을 알려드리겠습니다. sudo 권한이 있는 계정 1단계: 터미널 열기 단축키...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.