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
    

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