StoredProcedure에 관하여 알아보기

FGPRJS·2022년 6월 8일
0

다음 사이트를 참고하며 SQL을 사용하는 것과 다르게 DB를 다루는 방법인 StoredProcedure에 대하여 C#을 사용해 알아본다.


소개

StoredProcedure는 DB에 저장되어 있는 미리 정해져 있고, 재사용이 가능한 루틴이다.
SQL 서버는 StoredProedure들을 컴파일하며, 더 효율적으로 그들을 사용할 수 있게 만들어준다.
그러므로 Code상에서 동적으로 쿼리를 만들어서 전송하는 것보다 StoredProcedure들의 장점과 재사용성을 통한 성능 향상을 기대할 수 있다.

이하 섹션은 StoredProcedure를 사용하기 위한 SQLCommand 객체를 수정하는 방법을 보여준다.


SP사용하기

// 1. create a command object identifying
	// the stored procedure
	SqlCommand cmd  = new SqlCommand(
		"Ten Most Expensive Products", conn);

	// 2. set the command object so it knows
	// to execute a stored procedure
	cmd.CommandType = CommandType.StoredProcedure;

string명령과 함께, CommandType을 지정해 주어야 한다.

string 명령인 "Ten Most Expensive Products"라는 이름은 DB에 저장되어 있어야 한다.

CommandType의 기본값(Default)는 Query String이며, 아무것도 지정하지 않을 시 상기 string 명령은 Text Query로 인식된다.


파라미터 더하기

// 1. create a command object identifying
	// the stored procedure
	SqlCommand cmd  = new SqlCommand(
		"CustOrderHist", conn);

	// 2. set the command object so it knows
	// to execute a stored procedure
	cmd.CommandType = CommandType.StoredProcedure;

	// 3. add parameter to command, which
	// will be passed to the stored procedure
	cmd.Parameters.Add(
		new SqlParameter("@CustomerID", custId));

SP에서 파라미터를 사용하는 것은 쿼리 문자열 명령에 파라미터를 사용하는 것과 동일하다.

상기 기재된 SQLCommand생성자는 SP의 이름인 @CustomerID라는 하나의 파라미터를 사용한다. 따라서 SQLParamter 개체를 사용하여 이 파라미터를 채워야 하며, SQLParameter 생성자에 첫번째 파라미터로 전달된 파라미터의 이름은 SP의 파라미터의 그것과 철자가 정확히 같아야 한다.
그런 다음 다른 SQLCommand 개체와 동일한 방식으로 명령을 실행한다.

파라미터 방향

다음 링크에서는 파라미터 방향에 대해 설명한다. 파라미터가 입력/출력 전용인지, 혹은 양방향이거나 아예 반환 값 파라미터인지 알려주는 값을 설정하거나 가져올 수 있다.

profile
FGPRJS

0개의 댓글