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)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          最新評論

          主站蜘蛛池模板: 高淳县| 平昌县| 普宁市| 嘉定区| 田阳县| 晋江市| 凤冈县| 南乐县| 襄垣县| 泽库县| 霞浦县| 德庆县| 安宁市| 年辖:市辖区| 南皮县| 阳西县| 峡江县| 方正县| 汉沽区| 左云县| 葵青区| 玉门市| 蒙山县| 西丰县| 桃园市| 南漳县| 教育| 咸丰县| 阜南县| 永仁县| 扬州市| 庆城县| 沁源县| 武平县| 宜良县| 华坪县| 安平县| 延庆县| 绥中县| 讷河市| 吉林省|