电脑安全

您当前的位置:主页 > 电脑安全 >

mssql 存储过程根据表名和索引获取需要的列名

来源:[db:来源]标题:   错误    编辑:电脑技术全能网 时间:2019-09-20 06:23

原标题:mssql 存储过程根据表名和索引获取需要的列名
   本教程波及到了raiserror函数,有须要的友人能够参考一下。 RAISERROR ( { msg_id | msg_str | @local_variable } { ,severity ,state } [ ,argument [ ,...n ] ] ) [ WITH option [ ,...n ] ]参数阐明:第一个参数:{ msg_id | msg_str | @local_variable }msg_id:表现能够是一个sys.messages表中界说的新闻代号;应用 sp_addmessage 存储在 sys.messages 名目视图中的用户界说过错新闻号。用户界说过错新闻的过错号应该大于 50000。msg_str:表现也能够是一个用户界说新闻,该过错新闻最长能够有 2047 个字符;(假如是常量,请应用N'xxxx',由于是nvarchar的)当指定 msg_str 时,RAISERROR 将激发一个过错号为 5000 的过错新闻。@local_variable:表现也能够是依照 msg_str 方法的格局化字符串变量。第二个参数:severity用户界说的与该新闻关系的严峻级别。(这个很主要)任何用户都能够指定 0 到 18 之间的严峻级别。[0,10]的闭区间内,不会跳到catch;假如是[11,19],则跳到catch;假如[20,无限),则间接停止数据库教程衔接;第三个参数:state假如在多个地位激发雷同的用户界说过错,则针对每个地位应用独一的状况号有助于找到激发过错的代码段。介于 1 至 127 之间的恣意整数。(state 默许值为1)当state 值为 0 或大于 127 时会天生过错!第四个参数:argument用于取代 msg_str 或对应于 msg_id 的新闻中的界说的变量的参数。第五个参数:option过错的自界说选项,能够是下表中的任一值:LOG :在过错日记和利用顺序日记中记载过错;NOWAIT:将新闻马上发送给客户端;SETERROR:将 @@ERROR 值和 ERROR_NUMBER 值设置为 msg_id 或 50000 代码以下复制代码 create proc p_sword_getblcolumn(@tblName varchar(200),@fromIndex int,@toIndex int,@columnName varchar(3000) output)as begindeclare @tempColumn varchar(3000)declare @errMsg varchar(200)declare @i int set @i=1set @columnName=''set @errMsg=''declare tempColumnCur cursor forselect syscolumns.name from syscolumns join sysobjects on syscolumns.id = sysobjects.idwhere sysobjects.name =@tblName order by syscolumns.colorderopen tempColumnCur fetch next from tempColumnCur into @tempColumnwhile @@FETCH_STATUS=0beginif(@fromIndex=0 and @toIndex=0)beginset @columnName=@columnName+','+@tempColumnendif(@fromIndex=0 and @toIndex<>0)beginif(@i<=@toIndex)set @columnName=@columnName+','+@tempColumnendelse if(@fromIndex <>0 and @toIndex=0)beginif(@i>=@fromIndex)set @columnName=@columnName+','+@tempColumnendelse if(@i>=@fromIndex and @i<=@toIndex)beginset @columnName=@columnName+','+@tempColumnendset @i=@i+1print @ifetch next from tempColumnCur into @tempColumnendclose tempColumnCurdeallocate tempColumnCurset @columnName=SUBSTRING(@columnName,2,len(@columnName))print @columnNameif(@@ERROR<>0)beginset @errMsg='get column error 'goto errorprocendelse return 0enderrorproc:beginraiserror(@errMsg,16,1)return 1endgo

上一篇:php 读取 alexa信息-网络编程

下一篇:没有了