다음을 통해 공유


연습: Northwind Customers 테이블의 저장 프로시저 만들기

업데이트: 2011년 4월

이 연습에서는 Northwind 샘플 데이터베이스에 네 개의 저장 프로시저를 만드는 방법을 보여 줍니다. 저장 프로시저를 사용하면 데이터베이스에서 고객을 선택, 삽입, 업데이트 및 삭제할 수 있습니다.

"다음 단계" 단원에는 이러한 저장 프로시저를 사용하는 방법을 보여 주는 항목의 링크가 들어 있습니다.

사전 요구 사항

이 연습을 완료하려면 다음이 필요합니다.

Northwind 데이터베이스에 연결

저장 프로시저를 만들기 전에 Northwind 데이터베이스의 SQL Server 버전에 연결해야 합니다. 다음 절차에서는 데이터 연결을 만드는 방법을 보여 줍니다.

참고

Northwind 데이터베이스에 대한 데이터 연결이 이미 있는 경우 다음 단원인 저장 프로시저 만들기로 넘어갈 수 있습니다.

Northwind SQL Server 데이터베이스에 대한 데이터 연결을 만들려면

  1. 보기 메뉴에서 서버 탐색기/데이터베이스 탐색기를 클릭합니다.

  2. 데이터 연결을 마우스 오른쪽 단추로 클릭하고 연결 추가를 클릭합니다.

  3. 데이터 소스 선택 대화 상자에서 Microsoft SQL Server를 클릭한 다음 확인을 클릭합니다.

    연결 추가 대화 상자가 열렸는데 데이터 소스가 **Microsoft SQL Server(SqlClient)**가 아닌 경우 변경을 클릭하여 데이터 소스 선택/변경 대화 상자를 열고 Microsoft SQL Server를 클릭한 다음 확인을 클릭합니다. 자세한 내용은 데이터 소스 선택/변경 대화 상자를 참조하십시오.

  4. 드롭다운 목록에서 서버 이름을 클릭하거나 Northwind 데이터베이스가 있는 서버의 이름을 입력합니다.

  5. 데이터베이스 또는 응용 프로그램의 요구 사항에 따라, Windows 인증 사용을 클릭하거나 특정 사용자 이름과 암호를 사용하여 SQL Server를 실행하는 컴퓨터에 로그온합니다(SQL Server 인증). 자세한 내용은 연결 추가/수정(Microsoft SQL Server)을 참조하십시오.

  6. 데이터베이스 이름 선택 또는 입력 목록에서 Northwind 데이터베이스를 클릭합니다.

  7. 확인을 클릭합니다.

    서버 탐색기/데이터베이스 탐색기에 데이터 연결이 추가됩니다.

저장 프로시저 만들기

서버 탐색기/데이터베이스 탐색기에서 사용 가능한 Visual Database Tools를 사용하여 저장 프로시저를 만듭니다.

SQL 스크립트를 사용하여 저장 프로시저를 만들려면

  1. 서버 탐색기/데이터베이스 탐색기에서 Northwind 데이터베이스를 확장합니다.

  2. 다음 작업을 수행하여 SelectCustomers 저장 프로시저를 정의합니다.

    1. 저장 프로시저 노드를 마우스 오른쪽 단추로 클릭한 다음 새 저장 프로시저 추가를 클릭합니다.

    2. CREATE PROCEDURE 템플릿을 다음 코드로 바꿉니다.

      CREATE PROCEDURE dbo.[SelectCustomers]
      AS
          SET NOCOUNT ON;
      SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM dbo.Customers
      
    3. 프로시저를 저장합니다.

    4. SelectCustomers 저장 프로시저가 Northwind 데이터베이스에 추가됩니다. 프로시저 정의를 저장하면 프로시저 정의가 CREATE PROCEDURE에서 ALTER PROCEDURE로 변경됩니다.

  3. 다음 작업을 수행하여 InsertCustomers 저장 프로시저를 정의합니다.

    1. 저장 프로시저 노드를 마우스 오른쪽 단추로 클릭한 다음 새 저장 프로시저 추가를 클릭합니다.

    2. CREATE PROCEDURE 템플릿을 다음 코드로 바꿉니다.

      CREATE PROCEDURE dbo.InsertCustomers
      (
          @CustomerID nchar(5),
          @CompanyName nvarchar(40),
          @ContactName nvarchar(30),
          @ContactTitle nvarchar(30),
          @Address nvarchar(60),
          @City nvarchar(15),
          @Region nvarchar(15),
          @PostalCode nvarchar(10),
          @Country nvarchar(15),
          @Phone nvarchar(24),
          @Fax nvarchar(24)
      )
      AS
          SET NOCOUNT OFF;
      INSERT INTO [dbo].[Customers] ([CustomerID], [CompanyName], [ContactName], [ContactTitle], [Address], [City], [Region], [PostalCode], [Country], [Phone], [Fax]) VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, @Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax);
      
      SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID)
      
    3. 프로시저를 저장합니다.

    4. InsertCustomers 저장 프로시저가 Northwind 데이터베이스에 추가됩니다. 프로시저 정의를 저장하면 프로시저 정의가 CREATE PROCEDURE에서 ALTER PROCEDURE로 변경됩니다.

  4. 다음 작업을 수행하여 UpdateCustomers 저장 프로시저를 정의합니다.

    1. 저장 프로시저 노드를 마우스 오른쪽 단추로 클릭한 다음 새 저장 프로시저 추가를 클릭합니다.

    2. CREATE PROCEDURE 템플릿을 다음 코드로 바꿉니다.

      CREATE PROCEDURE dbo.UpdateCustomers
      (
          @CustomerID nchar(5),
          @CompanyName nvarchar(40),
          @ContactName nvarchar(30),
          @ContactTitle nvarchar(30),
          @Address nvarchar(60),
          @City nvarchar(15),
          @Region nvarchar(15),
          @PostalCode nvarchar(10),
          @Country nvarchar(15),
          @Phone nvarchar(24),
          @Fax nvarchar(24),
          @Original_CustomerID nchar(5)
      )
      AS
          SET NOCOUNT OFF;
      UPDATE [dbo].[Customers] SET [CustomerID] = @CustomerID, [CompanyName] = @CompanyName, [ContactName] = @ContactName, [ContactTitle] = @ContactTitle, [Address] = @Address, [City] = @City, [Region] = @Region, [PostalCode] = @PostalCode, [Country] = @Country, [Phone] = @Phone, [Fax] = @Fax WHERE (([CustomerID] = @Original_CustomerID));
      
      SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (CustomerID = @CustomerID)
      
    3. 프로시저를 저장합니다.

    4. UpdateCustomers 저장 프로시저가 Northwind 데이터베이스에 추가됩니다. 프로시저 정의를 저장하면 프로시저 정의가 CREATE PROCEDURE에서 ALTER PROCEDURE로 변경됩니다.

  5. 다음 작업을 수행하여 DeleteCustomers 저장 프로시저를 정의합니다.

    1. 저장 프로시저 노드를 마우스 오른쪽 단추로 클릭한 다음 새 저장 프로시저 추가를 클릭합니다.

    2. CREATE PROCEDURE 템플릿을 다음 코드로 바꿉니다.

      CREATE PROCEDURE dbo.DeleteCustomers
      (
          @Original_CustomerID nchar(5)
      )
      AS
          SET NOCOUNT OFF;
      DELETE FROM [dbo].[Customers] WHERE (([CustomerID] = @Original_CustomerID))
      
    3. 프로시저를 저장합니다.

    4. DeleteCustomers 저장 프로시저가 Northwind 데이터베이스에 추가됩니다. 프로시저 정의를 저장하면 프로시저 정의가 CREATE PROCEDURE에서 ALTER PROCEDURE로 변경됩니다.

다음 단계

다음 연습에서는 방금 만든 저장 프로시저를 사용하는 방법을 보여 줍니다.

방법: 저장 프로시저를 할당하여 업데이트, 삽입 및 삭제 수행(O/R 디자이너)

연습: LINQ to SQL 클래스 만들기(O/R 디자이너)

연습: 엔터티 클래스의 삽입, 업데이트 및 삭제 동작 사용자 지정

참고

이 연습을 반복하려는 경우 먼저 정의한 저장 프로시저를 삭제해야 합니다. 그러지 않으면 "데이터베이스에 ‘ProcedureName’(이)라는 개체가 이미 있습니다."라는 오류가 나타납니다.

참고 항목

기타 리소스

O/R 디자이너(개체 관계형 디자이너)

LINQ to SQL

Visual Studio에서 데이터 액세스

변경 기록

날짜

변경 내용

이유

2011년 4월

저장 프로시저를 만드는 단계의 오류를 수정했습니다.

고객 의견