• 利用SQL Server的全局临时表防止用户重复登录


    create procedure gp_findtemptable -- 2001/10/26 21:36 zhuzhichao in nanjing

    /* 寻找以操作员工号命名的全局临时表

     * 如无则将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告诉用户说对不起,此工号正被使用!

  • 相关阅读:
    修改RedHat7的root用户密码
    Linux目录,rpm及top,vi命令简记
    Centos7或RedHat7下安装Mysql
    异常、线程
    File类
    JDBC的学习(一)
    MySql多表查询_事务_DCL(资料三)
    MySql约束_设计_备份还原(资料二)
    MySql基础_DDL_DML_DQL(资料一)
    算法小结(一)
  • 原文地址:https://www.cnblogs.com/simba/p/479340.html
Copyright © 2020-2023  润新知