濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 根據(jù)表名和索引獲取需要的列名的存儲(chǔ)過(guò)程

根據(jù)表名和索引獲取需要的列名的存儲(chǔ)過(guò)程

熱門(mén)標(biāo)簽:陜西電銷(xiāo)外呼系統(tǒng)好用嗎 成都電話(huà)外呼系統(tǒng)一般多少錢(qián) 最新人工智能電銷(xiāo)機(jī)器人 蘭州語(yǔ)音外呼系統(tǒng)運(yùn)營(yíng)商 銀川高頻外呼回?fù)芟到y(tǒng)多少錢(qián) 如何做地圖標(biāo)注圖鋪 沒(méi)聽(tīng)見(jiàn)電話(huà)機(jī)器人幫你接 al智能電話(huà)機(jī)器人 數(shù)字匠心電銷(xiāo)機(jī)器人
復(fù)制代碼 代碼如下:

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函數(shù)
RAISERROR ( { msg_id | msg_str | @local_variable }
{ ,severity ,state }
[ ,argument [ ,...n ] ]
)
[ WITH option [ ,...n ] ]
參數(shù)說(shuō)明:
第一個(gè)參數(shù):{ msg_id | msg_str | @local_variable }
msg_id:表示可以是一個(gè)sys.messages表中定義的消息代號(hào);
使用 sp_addmessage 存儲(chǔ)在 sys.messages 目錄視圖中的用戶(hù)定義錯(cuò)誤消息號(hào)。
用戶(hù)定義錯(cuò)誤消息的錯(cuò)誤號(hào)應(yīng)當(dāng)大于 50000。
msg_str:表示也可以是一個(gè)用戶(hù)定義消息,該錯(cuò)誤消息最長(zhǎng)可以有 2047 個(gè)字符;
(如果是常量,請(qǐng)使用N'xxxx',因?yàn)槭莕varchar的)
當(dāng)指定 msg_str 時(shí),RAISERROR 將引發(fā)一個(gè)錯(cuò)誤號(hào)為 5000 的錯(cuò)誤消息。
@local_variable:表示也可以是按照 msg_str 方式的格式化字符串變量。
第二個(gè)參數(shù):severity
用戶(hù)定義的與該消息關(guān)聯(lián)的嚴(yán)重級(jí)別。(這個(gè)很重要)
任何用戶(hù)都可以指定 0 到 18 之間的嚴(yán)重級(jí)別。
[0,10]的閉區(qū)間內(nèi),不會(huì)跳到catch;
如果是[11,19],則跳到catch;
如果[20,無(wú)窮),則直接終止數(shù)據(jù)庫(kù)連接;
第三個(gè)參數(shù):state
如果在多個(gè)位置引發(fā)相同的用戶(hù)定義錯(cuò)誤,
則針對(duì)每個(gè)位置使用唯一的狀態(tài)號(hào)有助于找到引發(fā)錯(cuò)誤的代碼段。
介于 1 至 127 之間的任意整數(shù)。(state 默認(rèn)值為1)
當(dāng)state 值為 0 或大于 127 時(shí)會(huì)生成錯(cuò)誤!
第四個(gè)參數(shù):argument
用于代替 msg_str 或?qū)?yīng)于 msg_id 的消息中的定義的變量的參數(shù)。
第五個(gè)參數(shù):option
錯(cuò)誤的自定義選項(xiàng),可以是下表中的任一值:
LOG :在錯(cuò)誤日志和應(yīng)用程序日志中記錄錯(cuò)誤;
NOWAIT:將消息立即發(fā)送給客戶(hù)端;
SETERROR:將 @@ERROR 值和 ERROR_NUMBER 值設(shè)置為 msg_id 或 50000;

標(biāo)簽:鹽城 邢臺(tái) 宜春 本溪 巴彥淖爾 朔州 通化 遼源

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《根據(jù)表名和索引獲取需要的列名的存儲(chǔ)過(guò)程》,本文關(guān)鍵詞  根據(jù),表名,和,索引,獲取,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《根據(jù)表名和索引獲取需要的列名的存儲(chǔ)過(guò)程》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于根據(jù)表名和索引獲取需要的列名的存儲(chǔ)過(guò)程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    葫芦岛市| 多伦县| 和平县| 九台市| 阳城县| 丹棱县| 东源县| 桓台县| 乡宁县| 金山区| 新蔡县| 铜陵市| 鲜城| 团风县| 衡山县| 黑龙江省| 天等县| 准格尔旗| 洛宁县| 汝阳县| 会泽县| 柯坪县| 东台市| 鹤壁市| 焦作市| 大姚县| 册亨县| 开平市| 中阳县| 凤翔县| 社旗县| 新化县| 红桥区| 区。| 崇州市| 定安县| 山东| 高安市| 南雄市| 出国| 新河县|