我想把用户“981”的密码改成“234”,我写的语句如下:
 ALTER LOGIN [981]  WITH  PASSWORD ='234'如果没有这个用户时,执行这个语句就会出错:
消息 15151,级别 16,状态 1,第 1 行
无法对 登录名 '981' 执行 更改,因为它不存在,或者您没有所需的权限。我想在修改时,判断有没有这个用户,有这个用户就修改,否则就不修改,这个如何判断?

解决方案 »

  1.   


    create login abc with password='123456';
    create user a for login abc;-- 这里是改login的密码
    alter login abc with password='123456789'
      

  2.   

    我知道用alter login 来修改用户密码,我想在执行alter login语句之前判断一下有没有这个用户“abc”,如果有就执行alter login [abc] with password='123456789',如果没有就不要执行alter login [abc] with password='123456789',也不要执行:create login abc with password='123456'。
    我重复一下,我执行alter login [abc] with password='123456789'时,判断用户“abc”是否存在
      

  3.   


    找到
    if exists(select 1 from master.dbo.syslogins where name='abc')
    alter login abc with password='123456789'
      

  4.   

    if exists(select * from sys.server_principals where name = 'sa')
      

  5.   

     
    if exists(select 1 from sys.server_principals where name='abc')
      

  6.   

    select * from sys.server_principals where type in('S','U')
      

  7.   

    select loginname from master..syslogins
    可查出全部登录名称
      

  8.   

    因为它不存在,或者您没有所需的权限。==》
    1.是否有权限,一般改密码都是用管理员权限的账户
    2.判断是否存在...
     if exists(select * from sys.server_principals where TYPE='S' AND NAME='yourloginName')
      begin 
      alter login xxxx with password ....
      end;