database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 3902 게시물 읽기
No. 3902
저장프로시저에서 처리되지 않는 UPDATE문이 있습니다..
작성자
MC02
작성일
2007-12-03 17:07
조회수
3,471

CREATE PROC INSERT_BBS_THREAD
    @Writer Varchar(20),
    @Pass Varchar(20),
    @Email Varchar(100)=NULL,
    @Subject Varchar(100),
    @Secret Bit=0,
    @Notice Bit=0,
    @Mode Bit=0,
    @Reg_ip Varchar(15),
    @Reg_time Varchar(15),
    @Mod_time Varchar(15)=0,
    @Contents Text,
    @file_1 Varchar(100)=NULL,
    @file_2 Varchar(100)=NULL,
    @org_file_1 Varchar(100)=NULL,
    @org_file_2 Varchar(100)=NULL,
    @link_1 Varchar(100)=NULL,
    @link_2 Varchar(100)=NULL,
    @BID Char(10)

AS
    SET NOCOUNT ON
    DECLARE
 @NewThread int,
 @Prev_seq int,
 @Next_seq int
    SELECT @NewThread = ISNULL(MAX(thread),0) + 1000 FROM tbl_bbs_main WHERE BID = @BID
    SELECT @Prev_seq = MAX(seq) FROM tbl_bbs_main WHERE BID = @BID AND thread < @NewThread

    INSERT INTO tbl_bbs_main
        (BID, thread, depth, writer, pass, email, subject, contents, reg_time, reg_time2, mod_time, mode, secret, notice, reg_ip, hit, vote, file_1, file_2, org_file_1, org_file_2, link_1, link_2, prev_seq, next_seq, comment_cnt)
    Values
        (@BID, @NewThread, 0, @Writer, @Pass, @Email, @Subject, @Contents, @Reg_time, getdate(), 0, @Mode, @Secret, @Notice, @Reg_ip, 1, 0, @file_1, @file_2, @org_file_1, @org_file_2, @link_1, @link_2, @Prev_seq, 0, 0)
 --SELECT @Next_seq = scope_identity()
SELECT @Next_seq = @@IDENTITY
    UPDATE tbl_bbs_main SET next_seq = @Next_seq WHERE BID = @BID AND thread = @Prev_seq

    UPDATE tbl_bbs_set SET thread_cnt = thread_cnt+1 WHERE BID = @BID
GO
---------------------
이러한 저장프로시저를 생성하고 (게시판에서 새글(답변이 아닌)을 등록할때 사용하는 프로시저입니다.)
게시물을 등록하면, 별다른 오류 없이 정상적으로 등록이 됩니다.
tbl_bbs_set의 thread_cnt에도 정상적으로 1이 증가합니다
그런데 그 중간에 있는
    UPDATE tbl_bbs_main SET next_seq = @Next_seq WHERE BID = @BID AND thread = @Prev_seq
이 UPDATE문이 안 됩니다..
tbl_bbs_main의 next_seq 컬럼을 확인하면 값이 들어있지 않습니다..
SELECT @Next_seq = @@IDENTITY 이 문장을 제외하여도 들어가지 않구요..

버전은 SQL Server 8.0입니다.

MySQL만 쓰다가 MSSQL을 사용하기 시작했는데
여러모로 막히는 부분이 많네요..

고수님들의 도움을 바랍니다..

[Top]
No.
제목
작성자
작성일
조회
3905엑셀에서 sql서버로 커넥션 방법 질문 입니다... [1]
질문
2007-12-04
3070
3904[SQL->Oracle]trigger로 table 동기화
박신정
2007-12-03
3573
3903현재 월의 주 구하기 [2]
건방진연이
2007-12-03
4038
3902저장프로시저에서 처리되지 않는 UPDATE문이 있습니다..
MC02
2007-12-03
3471
3901오라클의 시퀸스처럼 구현하는 방법.. [3]
조재원
2007-12-03
4467
3899이건또왜안되는지.. [1]
유성만
2007-12-01
3190
3898한개의필드로 출력하기 [2]
유성만
2007-12-01
3047
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다