저장 프로시저 만들기Create a Stored Procedure

이전 버전의 SQL Server와 관련 된 콘텐츠를 참조 하십시오. 저장 프로시저 만들기합니다.For content related to previous versions of SQL Server, see Create a Stored Procedure.

이 항목에서는 Transact-SQLTransact-SQLSQL Server Management StudioSQL Server Management Studio CREATE PROCEDURE 문을 사용하여 Transact-SQLTransact-SQL 저장 프로시저를 만드는 방법에 대해 설명합니다.This topic describes how to create a Transact-SQLTransact-SQL stored procedure by using SQL Server Management StudioSQL Server Management Studio and by using the Transact-SQLTransact-SQL CREATE PROCEDURE statement.

사용 권한 Permissions

데이터베이스의 CREATE PROCEDURE 권한과 프로시저를 만들 스키마에 대한 ALTER 권한이 필요합니다.Requires CREATE PROCEDURE permission in the database and ALTER permission on the schema in which the procedure is being created.

저장 프로시저를 만드는 방법 How to Create a Stored Procedure

다음 중 하나를 사용할 수 있습니다.You can use one of the following:

SQL Server Management Studio 사용 Using SQL Server Management Studio

개체 탐색기에서 프로시저를 만들려면To create a procedure in Object Explorer

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine 의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine and then expand that instance.

  2. 데이터베이스를 확장하고 AdventureWorks2012AdventureWorks2012 데이터베이스를 확장한 다음 프로그래밍 기능을 확장합니다.Expand Databases, expand the AdventureWorks2012AdventureWorks2012 database, and then expand Programmability.

  3. 저장 프로시저를 마우스 오른쪽 단추로 클릭한 다음 새 저장 프로시저를 클릭합니다.Right-click Stored Procedures, and then click New Stored Procedure.

  4. 쿼리 메뉴에서 템플릿 매개 변수 값 지정을 클릭합니다.On the Query menu, click Specify Values for Template Parameters.

  5. 템플릿 매개 변수 값 지정 대화 상자에 표시된 매개 변수에 대해 다음 값을 입력합니다.In the Specify Values for Template Parameters dialog box, enter the following values for the parameters shown.

    매개 변수Parameter Value
    작성자Author Your nameYour name
    만든 날짜Create Date Today's dateToday's date
    설명Description Returns employee dataReturns employee data.
    Procedure_nameProcedure_name HumanResources.uspGetEmployeesTestHumanResources.uspGetEmployeesTest
    @Param1 @LastName
    @Datatype_For_Param1 nvarchar(50)nvarchar(50)
    Default_Value_For_Param1Default_Value_For_Param1 NULLNULL
    @Param2 @FirstName
    @Datatype_For_Param2 nvarchar(50)nvarchar(50)
    Default_Value_For_Param2Default_Value_For_Param2 NULLNULL
  6. 확인을 클릭합니다.Click OK.

  7. 쿼리 편집기에서 SELECT 문을 다음 문으로 바꿉니다.In the Query Editor, replace the SELECT statement with the following statement:

    SELECT FirstName, LastName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory  
    WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    
  8. 구문을 테스트하려면 쿼리 메뉴에서 구문 분석을 클릭합니다.To test the syntax, on the Query menu, click Parse. 오류 메시지가 반환되면 필요에 따라 위의 정보와 문을 비교하여 수정합니다.If an error message is returned, compare the statements with the information above and correct as needed.

  9. 프로시저를 만들려면 쿼리 메뉴에서 실행을 클릭합니다.To create the procedure, from the Query menu, click Execute. 프로시저가 데이터베이스 개체로 만들어집니다.The procedure is created as an object in the database.

  10. 개체 탐색기에 나열된 프로시저를 보려면 저장 프로시저 를 마우스 오른쪽 단추로 클릭하고 새로 고침을 선택합니다.To see the procedure listed in Object Explorer, right-click Stored Procedures and select Refresh.

  11. 프로시저를 실행하려면 개체 탐색기에서 저장 프로시저 이름 HumanResources.uspGetEmployeesTest 를 마우스 오른쪽 단추로 클릭하고 저장 프로시저 실행을 선택합니다.To run the procedure, in Object Explorer, right-click the stored procedure name HumanResources.uspGetEmployeesTest and select Execute Stored Procedure.

  12. 프로시저 실행 창에서 @LastName 매개 변수의 값으로 Margheim을 입력하고 @FirstName 매개 변수의 값으로 Diane을 입력합니다.In the Execute Procedure window, enter Margheim as the value for the parameter @LastName and enter the value Diane as the value for the parameter @FirstName.</span></span>

경고

모든 사용자 입력에 대해 유효성을 검사합니다.Validate all user input. 유효성 검사를 수행하기 전에는 사용자 입력을 연결하지 마세요.Do not concatenate user input before you validate it. 유효성 검사가 수행되지 않은 사용자 입력으로부터 생성된 명령은 실행하지 마세요.Never execute a command constructed from unvalidated user input.

Transact-SQL 사용 Using Transact-SQL

쿼리 편집기에서 프로시저를 만들려면To create a procedure in Query Editor

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 메뉴에서 파일 메뉴에서 새 쿼리를 클릭합니다.From the File menu, click New Query.

  3. 다음 예를 복사하여 쿼리 창에 붙여 넣고 실행을 클릭합니다.Copy and paste the following example into the query window and click Execute. 이 예에서는 다른 프로시저 이름을 사용하여 위와 같은 저장 프로시저를 만듭니다.This example creates the same stored procedure as above using a different procedure name.

    USE AdventureWorks2012;  
    GO  
    CREATE PROCEDURE HumanResources.uspGetEmployeesTest2   
        @LastName nvarchar(50),   
        @FirstName nvarchar(50)   
    AS   
    
        SET NOCOUNT ON;  
        SELECT FirstName, LastName, Department  
        FROM HumanResources.vEmployeeDepartmentHistory  
        WHERE FirstName = @FirstName AND LastName = @LastName  
        AND EndDate IS NULL;  
    GO  
    
  4. 프로시저를 실행하려면 다음 예제를 새 쿼리 창에 복사하여 붙여 넣고 실행을 클릭합니다.To run the procedure, copy and paste the following example into a new query window and click Execute. 매개 변수 값을 지정하는 다른 메서드가 표시됩니다.Notice that different methods of specifying the parameter values are shown.

    EXECUTE HumanResources.uspGetEmployeesTest2 N'Ackerman', N'Pilar';  
    -- Or  
    EXEC HumanResources.uspGetEmployeesTest2 @LastName = N'Ackerman', @FirstName = N'Pilar';  
    GO  
    -- Or  
    EXECUTE HumanResources.uspGetEmployeesTest2 @FirstName = N'Pilar', @LastName = N'Ackerman';  
    GO  
    

참고 항목See Also

CREATE PROCEDURE(Transact-SQL)CREATE PROCEDURE (Transact-SQL)