Java&Database&Web

          利用SQL Server的全局臨時表防止用戶重復登錄

          create procedure gp_findtemptable

          /* 尋找以操作員工號命名的全局臨時表

           * 如無則將out參數置為0并創建該表,如有則將out參數置為1

           * connection斷開連接后,全局臨時表會被SQL Server自動回收

          * 如發生斷電之類的意外,全局臨時表雖然還存在于tempdb,但是已經失去活性

          * object_id函數去判斷時會認為其不存在.

           */

          @v_userid varchar(6), -- 操作員工號

          @i_out int out -- 輸出參數 0:沒有登錄 1:已經登錄

          as

          declare @v_sql varchar(100)

          if object_id('tempdb.dbo.##'+@v_userid) is null

          begin

                  set @v_sql = 'create table ##'+@v_userid+'(userid varchar(6))'

                  exec (@v_sql)

                  set @i_out = 0

          end

          else

                  set @i_out = 1

                  在這個過程中,我們看到如果以用戶工號命名的全局臨時表不存在時過程會去創建一張并把out參數置為0,如果已經存在則將out參數置為1

                  這樣,我們在我們的應用程序中調用該過程時,如果取得的out參數為1時,我們可以毫不客氣地跳出一個message告訴用戶說對不起,此工號正被使用!

          posted on 2007-09-25 10:12 BeyondBoy 閱讀(649) 評論(1)  編輯  收藏 所屬分類: Database

          評論

          # re: 利用SQL Server的全局臨時表防止用戶重復登錄 2007-09-27 19:24 千里冰封

          呵呵,不用中間表應該也可以做到吧,登錄了就給一個標志  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          最新評論

          主站蜘蛛池模板: 五华县| 呼和浩特市| 沧源| 孙吴县| 土默特右旗| 广东省| 清水县| 漳州市| 博爱县| 永胜县| 古浪县| 永济市| 女性| 保德县| 太谷县| 凤山市| 九龙城区| 西乡县| 新密市| 龙海市| 正定县| 荥经县| 鹤壁市| 台南县| 夹江县| 成安县| 新龙县| 衡水市| 罗山县| 丽江市| 多伦县| 神农架林区| 景宁| 鱼台县| 巴里| 巴彦县| 织金县| 乐山市| 重庆市| 兴文县| 镇远县|