테이블 이름과 인덱스에 따라 필요한 열 이름을 저장하는 과정
create proc p_sword_getblcolumn
(
@tblName varchar(200),
@fromIndex int,
@toIndex int,
@columnName varchar(3000) output
)
as
begin
declare @tempColumn varchar(3000)
declare @errMsg varchar(200)
declare @i int
set @i=1
set @columnName=''
set @errMsg=''
declare tempColumnCur cursor for
select syscolumns.name from syscolumns join sysobjects on syscolumns.id = sysobjects.id
where sysobjects.name =@tblName order by syscolumns.colorder
open tempColumnCur
fetch next from tempColumnCur into @tempColumn
while @@FETCH_STATUS=0
begin
if(@fromIndex=0 and @toIndex=0)
begin
set @columnName=@columnName+','+@tempColumn
end
if(@fromIndex=0 and @toIndex<>0)
begin
if(@i<=@toIndex)
set @columnName=@columnName+','+@tempColumn
end
else if(@fromIndex <>0 and @toIndex=0)
begin
if(@i>=@fromIndex)
set @columnName=@columnName+','+@tempColumn
end
else if(@i>=@fromIndex and @i<=@toIndex)
begin
set @columnName=@columnName+','+@tempColumn
end
set @i=@i+1
print @i
fetch next from tempColumnCur into @tempColumn
end
close tempColumnCur
deallocate tempColumnCur
set @columnName=SUBSTRING(@columnName,2,len(@columnName))
print @columnName
if(@@ERROR<>0)
begin
set @errMsg='get column error '
goto errorproc
end
else
return 0
end
errorproc:
begin
raiserror(@errMsg,16,1)
return 1
end
go
그중에 raiserror 함수가 언급되었다
RAISERROR ( { msg_id | msg_str | @local_variable }
{ ,severity ,state }
[ ,argument [ ,...n ] ]
)
[ WITH option [ ,...n ] ]
매개변수 설명:
첫 번째 매개변수: {msg id | msg str | @local variable}
msg_id: sys가 될 수 있음을 나타냅니다.메시지 테이블에 정의된 메시지 대명사;
sp 사용addmessage는sys에 저장됩니다.메시지 디렉터리 보기에서 사용자 정의 오류 메시지 번호입니다.
사용자 정의 오류 메시지의 오류 번호는 50000보다 커야 합니다.
msg_str: 사용자 정의 메시지일 수도 있습니다. 이 오류 메시지는 최대 2047자까지 가능합니다.
(상수라면 nvarchar의 N'xxx'를 사용하십시오.)
지정된 msgstr 시 RAISERROR에서 오류 번호 5000 오류 메시지가 발생합니다.
@local_variable: msgstr 형식의 포맷 문자열 변수입니다.
두 번째 매개 변수:severity
사용자가 정의한 메시지와 관련된 심각도 수준(이게 중요해)
모든 사용자가 0에서 18 사이의 심각도 수준을 지정할 수 있습니다.
[0,10]의 폐구간에서catch로 뛰지 않는다.
[11, 19]이면 캣츠로 건너뛰기;
만약에 [20, 무한)하면 데이터베이스 연결을 종료한다.
세 번째 인자:state
여러 위치에서 같은 사용자 정의 오류가 발생하면
모든 위치에 유일한 상태 번호를 사용하면 오류를 일으키는 코드 세그먼트를 찾을 수 있습니다.
1에서 127 사이의 임의의 정수.(state 기본값은 1)
state 값이 0이거나 127보다 크면 오류가 발생합니다!
네 번째 인자:argument
msg 대신 사용str 또는 msgid 메시지에 정의된 변수의 매개 변수입니다.
다섯 번째 매개 변수: option
다음 표에서 잘못된 사용자 지정 옵션을 사용할 수 있습니다.
LOG: 오류 로그와 응용 프로그램 로그에 오류를 기록합니다.
NOWAIT: 클라이언트에게 메시지를 즉시 전송합니다.
SETERROR: @ERROR 값과 ERRORNUMBER 값이 msg 로 설정됨id 또는 50000;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.