SQLServer 저장 프로시저 와 ADO. NET 액세스 저장 프로시저 - 정리

다음으로 이동:http://www.cnblogs.com/qq731109249/archive/2012/10/07/2714236.html
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));
         }

좋은 웹페이지 즐겨찾기