创建登录用户的语法 sp_addlogin 中,参数应该不应该加上 单引号 定界符呀,我试了下,发现加不加都是一样的效果,这是为什么?
以下两种写法,是完全相同的,我不明白为何会这样.exec sp_addlogin 'abc','0000','pubs'exec sp_addlogin abc,0000,pubs

解决方案 »

  1.   

    还有,下面的语法说明我看不明白为什么会有变量呀,@loginame = "就是一个变量等于"的意思呀.可以实现用这个语句时,并没有用到变量呀.
    sp_addlogin [ @loginame = ] 'login'
        [ , [ @passwd = ] 'password' ]
        [ , [ @defdb = ] 'database' ]
        [ , [ @deflanguage = ] 'language' ]
        [ , [ @sid = ] sid ]
        [ , [ @encryptopt = ] 'encryption_option' ]
      

  2.   

      use     你的库名       
      go       
          
      --新增用户       
      exec     sp_addlogin     'test'                         --添加登录       
      exec     sp_grantdbaccess     N'test'                         --使其成为当前数据库的合法用户       
      exec     sp_addrolemember     N'db_owner',     N'test'                         --授予对自己数据库的所有权限     
      

  3.   

       
      --添加只允许访问指定表的用户:       
      exec     sp_addlogin     '用户名','密码','默认数据库名'       
          
      --添加到数据库       
      exec     sp_grantdbaccess     '用户名'   
          
      --分配整表权限       
      GRANT     SELECT   ,     INSERT   ,     UPDATE   ,     DELETE     ON   table1   TO   [用户名]   
        
      --分配权限到具体的列   
      GRANT     SELECT   ,     UPDATE     ON   table1(id,AA)   TO   [用户名]   
          
      

  4.   

    第二个问题,不是变量,是命名参数;使用命名参数,参数顺序可以不一致,有缺省值的参数可以省略(按缺省值)。
    -------------------------
    参数顺序可以不一致?有可能吗?
    exec sp_addlogin 'gh','0000' 意思是用户名为 gh,密码为 0000

    exec sp_addlogin '0000','gh' 的意思是用户名为 0000,密码为 gh 呀.
      

  5.   

    参数与 命名参数 有什么区别呀,sp_addlogin 的参数为何称为"命名参数",与别的参数有何不同之处呢?
      

  6.   

    -->这是这个存储过程的参数部分
    create procedure sp_addlogin
        @loginame sysname
       ,@passwd         sysname = Null
       ,@defdb          sysname = 'master'      -- UNDONE: DEFAULT CONFIGURABLE???
       ,@deflanguage    sysname = Null
       ,@sid varbinary(16) = Null
       ,@encryptopt varchar(20) = Null
    AS
    ......-->可以这样调用
    exec sp_addlogin 'test','123','master',null,null,null
    --参数顺序要和存储过程的一一对应。后面的默认值可以省略,中间的不能,中间省略了,参数就不能一一对应了。-->命名参数调用
    exec sp_addlogin @passwd='123',@loginame='test'
    --参数顺序可以乱写,默认参数全部可以省略。