知识大全 利用SQL的全局临时表防止用户重复登录
Posted 知
篇首语:有时候总感觉别人忽略了自己,想想可能是自己太闲了。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用SQL的全局临时表防止用户重复登录相关的知识,希望对你有一定的参考价值。
利用SQL的全局临时表防止用户重复登录 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在我们开发商务软件的时候 常常会遇到这样的一个问题 怎样防止用户重复登录我们的系统?特别是对于银行或是财务部门 更是要限制用户以其工号身份多次登入 可能会有人说在用户信息表中加一字段判断用户工号登录的状态 登录后写 退出时写 且登录时判断其标志位是否为 如是则不让该用户工号登录 但是这样那势必会带来新的问题 如发生象断电之类不可预知的现象 系统是非正常退出 无法将标志位置为 那么下次以该用户工号登录则不可登入 这该怎么办呢? 或许我们可以换一下思路 有什么东西是在connection断开后可以被系统自动回收的呢?对了 SQL Server的临时表具备这个特性!但是我们这里的这种情况不能用局部临时表 因为局部临时表对于每一个connection来说都是一个独立的对象 因此只能用全局临时表来达到我们的目的 好了 情况已经明朗话了 我们可以写一个象下面这样简单的存储过程: create procedure gp_findtemptable / / : zhuzhichao in nanjing /* 寻找以操作员工号命名的全局临时表 * 如无则将out参数置为 并创建该表 如有则将out参数置为 * 在connection断开连接后 全局临时表会被SQL Server自动回收 * 如发生断电之类的意外 全局临时表虽然还存在于tempdb中 但是已经失去活性 * 用object_id函数去判断时会认为其不存在 */ @v_userid varchar( ) 操作员工号 @i_out int out 输出参数 :没有登录 :已经登录 as declare @v_sql varchar( ) if object_id( tempdb dbo ## +@v_userid) is null begin set @v_sql = create table ## +@v_userid+ (userid varchar( )) exec (@v_sql) set @i_out = end else set @i_out = 在这个过程中 我们看到如果以用户工号命名的全局临时表不存在时过程会去创建一张并把out参数置为 如果已经存在则将out参数置为 这样 我们在我们的应用程序中调用该过程时 如果取得的out参数为 时 我们可以毫不客气地跳出一个message告诉用户说 对不起 此工号正被使用! cha138/Article/program/SQLServer/201311/22214相关参考
struts利用Token防止用户重复提交 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
ASP.NET中防止用户多次登录的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在web开
Asp.net中防止用户多次登录的方法[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Asp.net中防止用户多次登录的方法[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在W
ASP.NET防止用户多次登录的最简单的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于
使用oracle用户登录连接数据库 [oracle@wuzj~]$sqlplus/nolog SQL*Plus:ReleaseProductiononThuFeb:: Copyright(c
利用PB实现动态系统用户登录 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在多用户的大型数据库
知识大全 SQL Server 2005 控制用户权限访问表
SQLServer2005控制用户权限访问表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一需
方法二使登录用户和数据库的孤立用户对应起来 其实我们建立了同样名称的数据库登录用户后数据库中的表我们照样不能使用时因为sid的不同就是系统登录表和数据库用户表中的用户名相同单是sid字段数据库中
这段时间在学oracle终于把公司的数据库成功导入到我自己的数据库里了 create用户 sql代码SQL>createuservisiontvidentifiedbyvisiontvd