SQLServer 저장 프로시저 와 ADO. NET 액세스 저장 프로시저 - 정리
SqlServer 저장 프로 세 스 의 설명 방식:
Create proc 저장 프로시저 이름
As
T - sql 명령
SqlServer 저장 과정 은 매개 변수 없 는 저장 과정 과 매개 변수 저장 과정 으로 나 뉜 다.
1) 매개 변수 가 없 는 저장 과정
호출 기억 프로시저
Exec 저장 프로시저 이름;
이러한 용법 은 보기 와 차이 가 많 지 않 지만 보 기 는 order 를 사용 할 수 없습니다. by 명령.저장 과정 에는 이런 제한 이 없다.
예시 1 - 1 코드 는 다음 과 같다.
--
create proc select_activity
as
-- sql
select * from T_Activity;
SQL 에서 이 저장 프로시저 호출
-- select_activity
exec select_activity
매개 변수 저장 프로 세 스
주로 세 가지 유형의 매개 변수 가 있 습 니 다.
1) 입력 매개 변수 2) 출력 매개 변수 3) 반환 값
입력 매개 변 수 는 이 저장 과정 을 호출 하기 전에 반드시 매개 변 수 를 입력 해 야 하 며, 이 매개 변 수 는 프로그램 에서 만 사용 되 며, 사용자 에 게 다시 되 돌아 오지 않 습 니 다.
기본 성명 방식:
Create proc 저장 프로시저 이름
@ 매개 변수 이름 입력 1 데이터 형식,
@ 매개 변수 이름 2 입력 데이터 형식
As
T - sql 명령
여러 개의 인자 가 존재 한다 면 각 입력 매개 변수 간 에 쉼표 로 구분 해 야 합 니 다.매개 변수 가 문자열 이나 날짜 라면 작은 따옴표 로 묶 어야 하고 숫자 는 사용 하지 않 습 니 다.
비고:
저장 프로 세 스 는 일반적으로 너무 길 게 작성 하지 않 습 니 다. 저장 프로 세 스 는 데이터베이스 에서 실행 되 기 때문에 너무 길 면 실행 효율 에 영향 을 줄 수 있 습 니 다.
예시 1 - 2 코드 는 다음 과 같다.
--
create proc select_activity1
--
--alter proc select_activity1
-- , “,” ,
@id int,
@activityName nvarchar(50)
as
-- Sql
select * from T_Activity where id=@id and activityName=@activityName;
--
-- , , 。
exec select_activity1 5,' '
--
exec select_activity1
@id=1,
@activityName=' ';
저장 과정 에 간단 한 프로 그래 밍 문 구 를 포함 할 수 있다.
if, begin ·····end · · · 등 문장
예시 1 - 3 코드 는 다음 과 같다.
-- , , “=” ,
create proc sele_activity
@id int=null,
@activityInfoId int=null
as
-- if , “ ”, return
if @id is null or @activityInfoId is null
begin
raiserror(' ',16,1)
return
end
-- sql
select * from T_Activity where id=@id or activityInfoId=@activityInfoId;
-- ,
-- :“ 50000, 16, 1, sele_activity, 7 ”
exec sele_activity;
--
exec sele_activity
@id=2,
@activityInfoId=8;
출력 매개 변수의 저장 과정
출력 매개 변 수 는 입력 매개 변수 와 정반 대 입 니 다. 입력 매개 변 수 는 as 에서 한 번 만 활동 하고 출력 매개 변 수 는 전단 으로 돌아 가 사용 합 니 다.
출력 매개 변수의 성명 과정:
Createproc 저장 프로시저 이름
@ 매개 변수 이름 입력 데이터 형식
@ 출력 매개 변수 이름 데이터 형식 output
As
T - Sql 명령
출력 매개 변수 변 수 를 설명 할 때 output 라 고 밝 혀 야 합 니 다. 저장 과정 이 실 행 된 후에 출력 매개 변 수 를 전단 으로 되 돌려 줍 니 다.
예시 1 - 4 코드 는 다음 과 같다.
-- select_MathResult
create proc select_MathResult
-- @activityName
@activityName nvarchar(50),
-- , output
@result int output
as
-- T-SQL activityName
select @result=count(*) from T_Activity where activityName=@activityName
-- , @answer
declare @answer int
exec select_MathResult ' ' ,@answer output
select ' ',@answer
ADO, NET 을 사용 하여 저장 과정 을 호출 하면 네 가지 방식 으로 나 눌 수 있다.
1) 매개 변수 가 없 는 저장 프로 세 스 호출
2) 매개 변 수 를 가 진 저장 과정 호출
3) 여러 매개 변 수 를 가 진 저장 과정 호출
4) 출력 매개 변 수 를 호출 하 는 저장 과정
1. ADO. NET 은 매개 변수 가 없 는 저장 과정 을 호출 하고 사용 하 는 저장 과정 은 위의 블 로그 예제 1 - 1 이 만 든 저장 과정 입 니 다.
구체 적 인 호출 코드 1 - 1 설명 은 다음 과 같 습 니 다.
public void ShowData1()
{
SqlConnection con = new SqlConnection(strConString);
// SqlCommand ,
SqlCommand cmd = new SqlCommand("select_activity", con);
//
cmd.CommandType = CommandType.StoredProcedure;
//
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);
DataRow Dr = table.Rows[0];
Response.Write(Dr[3].ToString());
}
둘째, 위의 블 로 그 는 하나의 매개 변수 만 저장 하 는 과정 을 만 들 지 않 았 기 때문에 생 성 과정 은 다음 과 같 습 니 다.
--
create proc select_activity3
@id int
as
-- sql
select * from T_Activity where id=@id;
-- select_activity
exec select_activity3 5
ADO. NET 호출 매개 변수 저장 프로 세 스
예시 1 - 2
코드 는 다음 과 같 습 니 다:
/// <summary>
///
/// </summary>
public void ShowData2()
{
SqlConnection con = new SqlConnection(strConString);
SqlCommand cmd = new SqlCommand("select_activity3", con);
//
cmd.CommandType = CommandType.StoredProcedure;
//
SqlParameter parameter = new SqlParameter();
//
parameter.ParameterName = "@id";
//
parameter.SqlDbType = SqlDbType.Int;
//
parameter.Value = 5;
//
cmd.Parameters.Add(parameter);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataTable
DataTable table = new DataTable();
adapter.Fill(table);
DataRow Dr = table.Rows[0];
Response.Write(Dr[3].ToString());
}
3. ADO. NET 호출 에 여러 개의 매개 변 수 를 가 진 저장 과정, 본
예시 1 - 3
코드 는 두 개의 매개 변 수 를 시범 으로 하고 더 많은 매개 변 수 는 이 예 시 를 참조 할 수 있 으 며 사용 하 는 저장 과정 은 상편 박문 이다
예시 1 - 2
/// <summary>
///
/// </summary>
public void ShowData3()
{
SqlConnection con = new SqlConnection(strConString);
SqlCommand cmd = new SqlCommand("select_activity1", con);
//
cmd.CommandType = CommandType.StoredProcedure;
//
SqlParameter[] parameter =
{
new SqlParameter("@id",SqlDbType.Int,4),
new SqlParameter("@activityName",SqlDbType.NVarChar,50)
};
parameter[0].Value = 5;
//
parameter[1].Value = " ";
//
cmd.Parameters.AddRange(parameter);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataTable
DataTable table = new DataTable();
adapter.Fill(table);
DataRow Dr = table.Rows[0];
Response.Write(Dr[3].ToString());
}
4. ADO. NET 액세스 대 출력 매개 변수의 저장 과정, 본
예시 1 - 4
코드 는 하나의 파 라 메 터 를 입력 하고 출력 하 는 것 을 프 리 젠 테 이 션 으로 하고 더 많은 파 라 메 터 는 이 예제 를 참조 할 수 있 으 며 사용 하 는 저장 과정 은 상편 박문 이다.
예시 1 - 4
/// <summary>
///
/// </summary>
public void ShowData4()
{
SqlConnection con = new SqlConnection(strConString);
SqlCommand cmd = new SqlCommand("select_MathResult", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameter = {
new SqlParameter("@activityName",SqlDbType.NVarChar,50),
new SqlParameter("@result",SqlDbType.Int,4)
};
parameter[0].Value = " ";
//
parameter[1].Direction = ParameterDirection.Output;
cmd.Parameters.AddRange(parameter);
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);
Response.Write(Convert.ToInt32(cmd.Parameters[1].Value));
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.