幻女free性zozo交孩交/亚洲成人直播/日本视频免费/国产国语videosex另类

修復(fù)sql server 數(shù)據(jù)庫存儲導(dǎo)致的問題

2014-01-07 22:30:30 來源:華軍數(shù)據(jù)恢復(fù) 作者:網(wǎng)站管理員 閱讀:

        前天有朋友的一個(gè).net的網(wǎng)站出現(xiàn)問題了,是關(guān)于sql server 數(shù)據(jù)庫存儲導(dǎo)致的問題,具體問題是一旦這個(gè)詳情頁涉及到200個(gè)用戶以上就會出現(xiàn)報(bào)錯(cuò),200個(gè)以下就沒有問題,以下是sql server 數(shù)據(jù)庫修復(fù)過程。


        


        今天抽空檢查了代碼,發(fā)現(xiàn)代碼里使用的是存儲過程只需動(dòng)態(tài)SQL。把.net代碼里執(zhí)行的sql語句手動(dòng)逐一執(zhí)行,發(fā)現(xiàn)代碼是根據(jù)m_id查出一個(gè)由200多個(gè)userid拼接成的字符串,然后傳到存儲過程的參數(shù)里。用id in(@userids)查詢數(shù)據(jù),測試了一下當(dāng)userids是幾個(gè)時(shí)是可以執(zhí)行成功的,但是當(dāng)超過200個(gè)時(shí)就會報(bào)錯(cuò)。查看了存儲過程的定義發(fā)現(xiàn) where 定義最多是1000個(gè)字符,而200個(gè)id的字符串就會超過1000個(gè)字符,從而會被截?cái)?,從而?dǎo)致sql語句執(zhí)行出錯(cuò)。


        


        我點(diǎn)擊存儲過程->修改


        


        修改為4000個(gè)字符后,點(diǎn)擊,就可生效

        其實(shí)這種存儲過程在設(shè)計(jì)時(shí)候就有問題,不應(yīng)該使用id拼接的方式來構(gòu)建查詢語句,應(yīng)該使用聯(lián)合查詢或者子查詢來完成。

        執(zhí)行存儲過程的方法是
        exec dbo.proc_Pager "V_test','U_ID',1,20,'','CreateTime desc',' U_ID in (508,1185)';

        至此,sql server 數(shù)據(jù)庫存儲導(dǎo)致的報(bào)錯(cuò)問題已修復(fù),希望出現(xiàn)類似故障的朋友可以參考一下。

  • 華軍行數(shù)據(jù)恢復(fù) - 最新圖文資訊
  • 最新資訊導(dǎo)讀
  • 推薦內(nèi)容
  • 熱點(diǎn)內(nèi)容
CopyRight2014-2016 華軍數(shù)據(jù)恢復(fù)中心 版權(quán)所有 浙ICP備15017254號-4 成功案例 | 華軍資訊 | 技術(shù)專題 | RSS地圖