T-SQL是否有循环语句?类似C语言的for?如何查看有哪些用户连接到服务器上?如何强制其退出?...

我要删除一个登陆,直接用sp_droplogin的时候系统提示:  
  //登录   'dubin'   在一个或多个数据库中有别名或映射到了用户上。请除去这些用户或别名后再除去该登录。  
   
  于是我就想了个办法,依次查找每个数据库的sysusers,如果存在这个用户就先将他删除,全部都删除完了就可以删除该登陆了。  
  如此当然可以一个一个数据库的手动查找删除,但要是数据库多了就麻烦了。于是我想通过一个循环,先查   master   数据库中的   sysdatabase   中找出有哪些数据库,在依次循环查找是否有这个用户,有则删除之。如此则需用循环语句,但我不知道T-SQL的循环语句是怎么样的,请高手指教。  
  还有:  
  如何查看有哪些用户连接到服务器上?如何强制其退出?  
declare   @username   sysname  
  set   @username='aa' --要删除的登录名      
  declare   @s   nvarchar(4000)  
  declare   tb   cursor   local   for  
  select   N'use   ['+replace(name,N']',N']]')  
  +N']  
  if   exists(select   *   from   sysusers   where   islogin=1   and   name=@username)  
  exec   sp_revokedbaccess   @name_in_db   =   @username'  
  from   master.dbo.sysdatabases  
  open   tb  
  fetch   tb   into   @s  
  while   @@fetch_status=0  
  begin  
  exec   sp_executesql   @s,N'@username   sysname',@username  
  fetch   tb   into   @s  
  end  
  close   tb  
  deallocate   tb  
  exec   sp_droplogin   @loginame   =   @username
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值