sql server2005恢复数据库

                 SQL2005恢复数据库(GS)

 

在SQL2005下面恢复数据分为两种情况。一种是新建的实例编号与恢复的数据库编号相同情况;一种是新建的实例编号与恢复的数据库编号不同情况。

 

一、新建的实例编号与恢复的数据库编号相同情况,我们以实例编号为001为例;

 

1、  新建实例编号为001后。进行SQL2005企业管理器。选中数据库----任务—还原---数据库,如图:

 

2、  选择源设备---选好以前备份的数据库文件—确定。如图:

 

3、  点上文件前面的勾后再选择左上角“选项”,如图:、

 

4、  勾上“覆盖现有数据库”,选择好自己的文件路径,确定:如图:

 

5、  还原后选定数据库----新建查询----执行以下语句:

sp_change_users_login 'update_one','lc0019999','lc0019999'

       

这样就可以用以前数据库的用户名和密码登录。

 

 

 

 

 

 

二、新建的实例编号与恢复的数据库编号不相同情况,我们以实例编号为002为例;

1、新建完编号为002的实例后,还原数据库。步骤和前面还原数据库一样。

2、然后选择实例002的数据库。新建查询---分别执行如下语句:

exec sp_adduser 'lc0029999','lc0029999'

exec sp_addrolemember 'db_owner','lc0029999'

exec sp_addsrvrolemember 'lc0029999','processadmin'

 

 

 

3、然后再执行如下语句:

CREATE PROCEDURE DBGhost_Change_user_schema

       @OldSchema as NVARCHAR(128),

       @NewSchema as NVARCHAR(128) AS

       DECLARE @Name   as NVARCHAR(128)

       DECLARE @OwnerName  as NVARCHAR(128)

       DECLARE curObject CURSOR FOR

       select 'Name'   = sysobjects.name

       from sysobjects,sys.schemas

       where sys.schemas.name = @OldSchema

       and sysobjects.uid=sys.schemas.schema_id

      and sysobjects.xtype != 'D'

       order by name

      OPEN  curObject

      FETCH NEXT FROM curObject INTO @Name

      WHILE(@@FETCH_STATUS=0)

      BEGIN

        set @OwnerName = @OldSchema + '.' + rtrim(@Name)

        exec sp_changeobjectowner @OwnerName, @NewSchema

       FETCH NEXT FROM curObject INTO @Name

      END

      close curObject

      deallocate curObject

 

 

 

 

4、执行完后,再执行下面语句:

exec  DBGhost_Change_user_schema 'lc0019999','lc0029999'

(备注:lc0019999 为以前数据库里的用户,lc0029999为新建实例的用户)

 

 

6、  然后再执行以下语句:

 exec  sp_dropuser 'lc0019999'         (备注:lc0019999为以前数据库里的用户)可以不执行

7、  然后再执行如下语句就可以用以前的用户名和密码登录。

sp_change_users_login 'update_one','lc0029999','lc0029999'

 

 

posted @ 2012-05-16 13:33  箐谷  阅读(460)  评论(0编辑  收藏  举报