一段附加sql server数据库的脚本

时间:2010-04-30 阅读: 佚名
操作系统重装、应用系统移植 经常要面临一个 数据库的移植,那么其实有很多方法可以做,这里我介绍一种简便的方法。 以数据库:test2010,访问用户:user2010,访问密码:pass2010 为例 1、停止mssql。 2、将数据文件(.mdf)和日志文件(.ldf)备份下来。 3、将备份的2个文件存放在新环境上,假设路径为D:\MSSQL\test2010.mdf和D:\MSSQL\test2010.ldf 4、将下面的脚本运行即可。 use [master] GO EXEC sp_attach_db @

操作系统重装、应用系统移植  经常要面临一个 数据库的移植,那么其实有很多方法可以做,这里我介绍一种简便的方法。

以数据库:test2010,访问用户:user2010,访问密码:pass2010 为例

1、停止mssql。

2、将数据文件(.mdf)和日志文件(.ldf)备份下来。

3、将备份的2个文件存放在新环境上,假设路径为D:\MSSQL\test2010.mdf和D:\MSSQL\test2010.ldf

4、将下面的脚本运行即可。

 

use [master]
GO

EXEC sp_attach_db @dbname = 'test2010',
 @filename1 = 'D:\MSSQL\test2010.mdf',
 @filename2 = 'D:\MSSQL\test2010.ldf'
GO


use [test2010]
GO

if not exists (select * from master.dbo.syslogins where loginname = N'user2010')
BEGIN
 declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'master', @loginlang = N'简体中文'
 if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)
  select @logindb = N'master'
 if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')
  select @loginlang = @@language
 exec sp_addlogin N'user2010', 'pass2010', @logindb, @loginlang
END
GO
if not exists (select * from dbo.sysusers where name = N'user2010')
 EXEC sp_grantdbaccess N'user2010', N'user2010'
GO
exec sp_addrolemember N'db_owner', N'user2010'
GO

exec sp_change_users_login 'UPDATE_ONE','user2010','user2010'  -----重新关联登录和用户
GO

sp_changedbowner 'sa'  ------防止用户孤立

 

[责任编辑:jumbot]

[发表评论] [收藏本页]