通过SQL脚本还原SQLServer数据库的BAK备份文件

最近操作数据库SQLServer比较多,其中有一个操作比较麻烦,就是需要通过一个数据库还原成其他数据库,并且创建相对应的用户与密码。手动操作肯定太麻烦,用下面的脚本即可方便完成~

--通过一个数据库还原成其他数据库
RESTORE DATABASE [DBName_XXX] 
FROM DISK = N'C:\DBbak\TestDBbackup.bak' WITH
MOVE N'TestDB' TO N'C:\DB\DBName_XXX.mdf', 
MOVE N'TestDB_log' TO N'C:\DB\DBName_XXX_log.ldf',
FILE = 1, NOUNLOAD, STATS = 10
 
--创建相对应的用户与密码
USE [master]
GO
CREATE LOGIN user_XXX WITH
PASSWORD = N'pwd_XXX'
, DEFAULT_DATABASE = DBName_XXX, CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
PRINT 'CREATE LOGIN OK.'
 
USE DBName_XXX
GO
CREATE USER user_XXX FOR LOGIN user_XXX WITH DEFAULT_SCHEMA = [dbo] 
GO
EXEC sp_addrolemember N'db_owner', N'user_XXX'
GO
PRINT 'CREATE USER OK.'

只需将以上代码中的变量替换即可:

将“C:\DBbak\TestDBbackup.bak”替换为你数据库备份的文件路径
DBName_XXX:数据库名
user_XXX:数据库登录用户名
pwd_XXX:数据库登录用户密码