더북(TheBook)

5. 다시 SQL Server 개체 탐색기의 쿼리 편집기 영역으로 돌아와서 Memos.sql 파일에 다음의 긴 SQL 구문을 작성한다. Memos 테이블을 만들고, 테이블에 데이터를 입력, 출력, 상세보기, 수정, 삭제, 검색하는 로직에서 사용할 만한 예시 구문을 만들어 보고, 이에 대한 저장 프로시저 구문을 함께 만드는 작업이다.

▼  Memos.sql

–[1] 한줄 메모장(Memos) 테이블 설계
Create Table dbo.Memos
(
  Num       Int Identity(1, 1) Primary Key,  번호
  Name      NVarChar(25) Not Null,           이름
  Email     NVarChar(100) Null,              이메일
  Title     NVarChar(150) Not Null,          메모
  PostDate  DateTime Default(GetDate()),     작성일
  PostIP    NVarChar(15) Null                IP 주소
)
Go


–[2] SQL 예시문 6가지 작성

–[a] 입력 예시문: Insert: FrmMemoWrite.aspx
Insert Memos
Values
(
  N‘레드플러스’, Nredplus@devlec.com, N‘레드플러스입니다., GetDate(),127.0.0.1)
Go

–[b] 출력 예시문: Select: FrmMemoList.aspx
Select Num, Name, Email, Title, PostDate, PostIP
From Memos Order By Num Desc
Go

–[c] 상세 예시문: Select: FrmMemoView.aspx
Select Num, Name, Email, Title, PostDate, PostIP
From Memos Where Num = 1
Go

–[d] 수정 예시문: Update: FrmMemoModify.aspx
Begin Tran
  Update Memos
  Set
      Name = N‘백두산’,
      Email = Nadmin@devlec.com,
      Title = N‘백두산입니다.,
      PostIP = N127.0.0.1Where
      Num = 1
RollBack Tran
Commit Tran
Go

–[e] 삭제 예시문: Delete: FrmMemoDelete.aspx
Begin Tran
  Delete Memos
  Where Num = 10
RollBack Tran
Commit Tran
Go

–[f] 검색 예시문: Select: FrmMemoSearch.aspx
Memos에서 이름이 레드플러스이거나 또는
이메일에 ‘r’가 들어가는 자료의 모든 필드
번호의 역순으로 검색
Select Num, Name, Email, Title, PostDate
From Memos
Where
  Name = ‘레드플러스’
  Or
  Email Like%r%Order By Num Desc
Go


–[3] SQL 저장 프로시저 6가지 작성

–[a] 메모 입력용 저장 프로시저
Create Procedure dbo.WriteMemo
(
  @Name NVarChar(25),
  @Email NVarChar(100),
  @Title NVarChar(150),
  @PostIP NVarChar(15)
)
As
  Insert Memos(Name, Email, Title, PostIP)
  Values(@Name, @Email, @Title, @PostIP)
Go

–[b] 메모 출력용 저장 프로시저
Create Proc dbo.ListMemo
As
  Select Num, Name, Email, Title, PostDate, PostIP
  From Memos Order By Num Desc
Go

–[c] 메모 상세보기용 저장 프로시저
Create Proc dbo.ViewMemo
(
  @Num Int
)
As
  Select Num, Name, Email, Title, PostDate, PostIP
  From Memos
  Where Num = @Num
Go

–[d] 메모 데이터 수정용 저장 프로시저
Create Proc dbo.ModifyMemo
(
  @Name NVarChar(25),
  @Email NVarChar(100),
  @Title NVarChar(150),
  @Num Int
)
As
Begin Transaction
  Update Memos
  Set
      Name = @Name,
      Email = @Email,
      Title = @Title
  Where Num = @Num
Commit Transaction
Go

–[e] 메모 데이터 삭제용 저장 프로시저
Create Proc dbo.DeleteMemo
(
  @Num Int
)
As
  Delete Memos
  Where Num = @Num
Go

–[f] 메모 데이터 검색용 저장 프로시저(동적SQL 사용)
Create Proc dbo.SearchMemo
(
  @SearchField NVarChar(10),
  @SearchQuery NVarChar(50)
)
With Encryption  현재 SP문 암호화
As
  Declare @strSql NVarChar(150) 변수 선언
  Set @strSql =Select Num, Name, Email, Title, PostDate, PostIP
      From Memos
      Where+ @SearchField +Like
          N’%’ + @SearchQuery + ’%’Order By Num DescPrint @strSql
  Exec (@strSql) 완성된 SQL 문 실행
Go

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.