본문 바로가기

MSSQL

★ 게시판을 만들어 보자- Microsoft SQL Server

게시판의 테이블을 만들어보자!
idx는 게시판의 고유아이디로 여기면 됩니다!
게시판의 다양한 쿼리문을 실행 하기위해 또는 정렬, 조회 등 아이디는 기본적으로 부여 해 주는게 좋습니다!
(GETDATE()함수를 사용하여 간단하게 글을 작성한 날짜를 불러 올 수 있습니다.)

지난번에 만들어 본 WRITE, LIST, VIEW페이지를 SQL Server에서  다양하게 호출 할 수 있도록
프로시져로 만들어 보겠습니다.

--write
alter proc writeTest(@bname varchar(12), @bpassword varchar(12), @btitle varchar(50), @bcontent varchar(50))
as
begin
insert into board(bname, bpassword, btitle, bcontent)
values(@bname, @bpassword, @btitle, @bcontent)
end

--list
alter proc listTest
as
begin
select idx, btitle, bname,convert(char(10),bsigndate,126) as bsigndate,bvisit from board order by idx desc
end


--view
create proc viewTest(@idx int)
as
begin
 update board set bvisit=bvisit+1  where
idx=@idx
 select idx, btitle, convert(char(10),bsigndate,126) as bsigndate, bvisit, bcontent from board where idx =@idx
end

프로시져의 사용법은 간단합니다.
viewTest23을 실행하면, viewTest프로시져의 idx가 23인 항목만을 보여줍니다.
이렇게 프로시져로 만들어 둔다면, 간단한 한줄의 명령어만으로도 원하는 결과를 쉽게 얻을 수 있습니다.
@idx와 같이 선언 해 주지 않은 listTest 프로시져는 특별히 지정한 항목이 아닌 모든 항목을 보여 줍니다.
writeTest 역시 원하는 값을 프로시져명 뒤에 써주면 됩니다.
(※ 항상 정확하게 입력해야 합니다 [ex] varchar(X) - varchar(50)(O))

실행결과 화면입니다. idx는 identity함수로 자동증가 하였고, idx23는 update를 사용하여
한번 검색 될 때마다 조회수를 증가시켰습니다.
보통 일반적인 게시판은 가장 최근에 쓰여진 글이 상단에 위치하기 때문에
order by를 사용하여 listTest프로시져에서 idx를 내림차순(DESC)입니다.