--问题1. 用下面的语句修复
sp_change_user_login 'auto_fix','gdw'
--问题2. 用下面的语句,不要理会错误提示
exec sp_msforeachtable 'exec sp_changeobjectowner ''?'',''dbo'''

解决方案 »

  1.   

    --修复的那个拼写错了,注意要选择数据库为要修复登录的数据库exec sp_change_users_login 'Auto_Fix','gdw'
      

  2.   

    首先谢谢  zjcxc(邹建) 。问题一的修复过程为:打开SQL库,找到表项,在其中的一个表名[gdw].[Admin]上点右键,选择“打开表”-“查询”,出来查询窗口,输入语句: exec sp_change_users_login 'Auto_Fix','gdw' 执行,弹出窗口,意思是说,查询设计器不支持 EXEC SQL 构造。单击“是”在SQL编辑窗格中编辑查询。然后单击“是”执行语句,出现错误提示:[Microsoft][ODBC SQL Server Driver][SQL Server]将终止此过程。操作'Auto_Fix'与其它参数值('gdw'.'(null)')不兼容。如果不理会错误,继续再次执行语句,又出现如下错误提示:[Microsoft][ODBC SQL Server Driver][SQL Server]名为'ms_crs_110_Users'的游标已存在。仍不能为用户“gdw”增加登陆名,请问,问题出在哪儿?如何解决? 谢谢。
      

  3.   

    不好意思,问题没解决,还得麻烦你。用SA账户登陆,到目标库里,打开查询分析器,执行语句:
    exec sp_change_users_login 'Auto_Fix','gdw'出现下面错误:服务器: 消息 15290,级别 16,状态 1,过程 sp_change_users_login,行 166
    将终止此过程。操作 'Auto_Fix' 与其它参数值('gdw'、'(null)')不兼容。再次执行又出现如下错误:服务器: 消息 16915,级别 16,状态 1,行 2
    名为 'ms_crs_110_Users' 的游标已存在。
    服务器: 消息 16905,级别 16,状态 1,过程 sp_change_users_login,行 147
    游标已打开。
    通过更新用户而修复的孤立用户数目为 0。
    通过添加新登录然后更新用户而修复的孤立用户数目为 0。
      

  4.   

    密码错误,或者是没有 gdw 这个用户吧?
      

  5.   

    gdw你设置了密码的话,应该用:
    exec sp_change_users_login 'Auto_Fix','gdw','密码'
      

  6.   

    是有密码,把这事忘了,不好意思。但同时又出现另一个问题,我用批量更改语句,把表的所有者从“gdw”改成了“dbo”,改完之后才发现论坛是有存储过程的,我有没办法再恢复过去?把表的所有者改仍然改为“gdw”?(晕了,感觉自己这会就是个惹事的主)
    (注:转移的是动网论坛的数据,SQL存储过程版)
      

  7.   

    --dbo换成gdw就行了exec sp_msforeachtable 'exec sp_changeobjectowner ''?'',''gdw'''
      

  8.   

    全部搞定,谢谢  zjcxc(邹建)  送分100