방법: 저장 프로시저 및 사용자 정의 함수 만들기

서버 탐색기를 사용하여 저장 프로시저를 만들 수 있습니다. 저장 프로시저로 복잡한 비즈니스 규칙을 정의하고 데이터 수정을 제어하며, 보안 권한을 통해 액세스를 제한하고, 트랜잭션 무결성을 제공하며, 일반적으로 응용 프로그램이 필요로 하는 데이터베이스 작업을 수행할 수 있습니다.

Microsoft SQL Server 2000 이상 버전을 사용하는 경우 서버 탐색기를 사용하여 사용자 정의 함수를 만들 수도 있습니다. 사용자 정의 함수는 다른 쿼리에서 사용할 수 있도록 유용한 논리를 캡슐화하는 루틴입니다. 뷰에서는 단일 SELECT 문만 사용할 수 있지만, 사용자 정의 함수에서는 여러 SELECT 문을 사용할 수 있으며 뷰보다 강력한 논리를 제공할 수 있습니다.

사용자 정의 함수는 항상 값을 반환합니다. 반환되는 값의 형식에 따라 각 사용자 정의 함수는 다음 세 가지 범주로 구분됩니다.

  • 스칼라 반환 함수 사용자 정의 함수가 정수 또는 타임 스탬프와 같은 스칼라 값을 반환할 수 있습니다. 함수가 스칼라 값을 반환하는 경우 쿼리에서 열 이름을 사용하려는 위치에 이 함수를 사용할 수 있습니다.

  • 인라인 함수 는 사용자 정의 함수에 단일 SELECT 문이 포함 하 고 해당 문이 업데이트 가능한 지 다음 함수에 의해 반환 되는 테이블 결과도 업데이트할 수 이기도 합니다. 이러한 함수를 인라인 함수라고 합니다. 인라인 함수가 테이블을 반환하는 경우 다른 쿼리의 FROM 절에 이 함수를 사용할 수 있습니다. 자세한 내용은 방법: 테이블 외의 항목을 사용하여 쿼리 만들기을 참조하십시오.

  • 테이블 반환 함수 사용자 정의 함수 하나 이상의 SELECT 문이 포함 하거나, 업데이트할 수 없는 SELECT 문이 포함 경우 해당 함수가 반환 하는 테이블 결과도 업데이트할 수 없습니다. 테이블 반환 함수가 테이블을 반환하는 경우 다른 쿼리의 FROM 절에 이 함수를 사용할 수 있습니다.

참고

다음 예제에서 dbo는 database owner(데이터베이스 소유자)의 머리글자어로 저장 프로시저 및 사용자 정의 함수 이름을 한정하는 데 사용됩니다.dbo는 모든 데이터베이스 작업을 수행할 묵시적 권한을 가진 사용자입니다.sysadmin 역할을 수행하는 멤버가 만든 모든 개체는 자동으로 dbo에 속합니다.다음 예제에는 dbo 이름 한정자가 포함되어 있습니다.

참고

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

새 저장 프로시저를 만들려면

  1. 서버 탐색기에서 저장 프로시저 폴더나 해당 폴더에 있는 임의의 저장 프로시저를 마우스 오른쪽 단추로 클릭합니다.

  2. 바로 가기 메뉴에서 새 저장 프로시저 추가를 선택합니다.

    다음과 같이 기초 SQL 문을 사용한 새 저장 프로시저가 만들어집니다.

    CREATE PROCEDURE dbo.StoredProcedure1
    /*
       (
          @parameter1 datatype = default value,
          @parameter2 datatype OUTPUT
       )
    */
    AS
       /* SET NOCOUNT ON */
       RETURN
    
  3. 첫 번째 줄에 있는 StoredProcedure1을 새 프로시저의 이름으로 바꿀 수 있습니다. 예를 들어, MyProcedure를 이름으로 사용할 수 있습니다.

    CREATE PROCEDURE dbo.MyProcedure
    

    참고

    저장 프로시저 이름은 고유해야 합니다.다른 저장 프로시저에 이미 할당된 이름을 선택하면 해당 이름을 사용하는 저장 프로시저가 이미 존재함을 알리는 오류 메시지가 표시됩니다.

  4. SQL을 사용하여 나머지 프로시저 텍스트를 작성합니다.

    저장 프로시저에 대한 자세한 내용 및 예제는 데이터베이스 서버 설명서를 참조하십시오. Microsoft SQL Server 사용 하는 경우 "CREATE PROCEDURE" SQL Server 온라인 설명서를 참조 하십시오.

새 사용자 정의 함수를 만들려면

  1. 서버 탐색기에서 함수 폴더나 해당 폴더에 있는 임의의 함수를 마우스 오른쪽 단추로 클릭합니다.

  2. 새로 추가를 가리킨 다음 바로 가기 메뉴에서 인라인 함수, 테이블 반환 함수 또는 스칼라 반환 함수를 선택합니다.

    참고

    새 함수의 기초 SQL 문을 다른 함수 형식의 SQL 문으로 수정하여 그 결과를 저장할 수 없습니다.예를 들어, 인라인 함수로 시작한 SQL 문을 스칼라 반환 함수로 수정할 수 없으며저장되지도 않습니다.

    기초 SQL 문을 사용한 새 사용자 정의 함수가 만들어집니다. 예를 들어, 스칼라 반환 함수를 선택하면 다음과 같은 기초 SQL 문이 표시됩니다.

    CREATE FUNCTION dbo.Function1
       (
       /*
       @parameter1 datatype = default value,
       @parameter2 datatype
       */
       )
    RETURNS /* datatype */
    AS
       BEGIN
          /* sql statement ... */
       RETURN /* value */
       END
    
  3. 첫 번째 줄에 있는 Function1을 새 함수의 이름으로 바꿀 수 있습니다. 예를 들어, MyFunction을 이름으로 사용할 수 있습니다.

    CREATE FUNCTION dbo.MyFunction
    

    참고

    사용자 정의 함수 이름은 고유해야 합니다.다른 함수에 이미 할당된 이름을 선택하면 해당 이름을 사용하는 함수가 이미 있음을 알려 주는 오류 메시지가 표시됩니다.

  4. SQL을 사용하여 나머지 함수 텍스트를 작성합니다.

참고

필요한 옵션이 바로 가기 메뉴에 표시되지 않으면 현재 사용 중인 Visual Studio 버전이 해당 기능을 지원하지 않는 경우일 수 있습니다.자세한 내용은 Visual Database Tools 버전을 참조하십시오.

사용자 정의 함수에 대한 자세한 내용 및 예제는 데이터베이스 서버 설명서를 참조하십시오. Microsoft SQL Server 사용 하는 경우 SQL Server 온라인 설명서의 "함수 만들기"를 참조 하십시오.

참고 항목

개념

쿼리에서의 식

기타 리소스

저장 프로시저 및 사용자 정의 함수 작업