상위 수준의 사용자와 함께 SQL Server에 로그인 할 수 있습니다.
-- go for master
use master
-- backup the old database
backup database olddatabasename
to disk = 'c:\backup.bak'
-- create a new database
create database newdatabasename
on
(
name = newdatabasenamedata,
filename = 'c:\newdatabasenamedata.mdf',
size = 500mb,
maxsize = unlimited,
filegrowth = 25mb
)
log on
(
name = newdatabasenamelog,
filename = 'c:\newdatabasenamelog.ldf',
size = 5mb,
filegrowth = 5mb
)
-- put it in single user mode
alter database newdatabasename
set single_user
with rollback immediate
-- get the backup logical names and write it down
restore filelistonly
from disk = 'c:\backup.bak'
-- restore the database from the backup using the logical names
restore database newdatabasename
from disk = 'c:\backup.bak'
with
move 'olddatabasenamelogicalnamedata' to 'c:\newdatabasenamedata.mdf',
move 'olddatabasenamelogicalnamelog' to 'c:\newdatabasenamelog.ldf',
replace
-- rename the logical names if you want (do it =p)
alter database newdatabasename
modify file
(
name = 'olddatabasenamelogicalnamedata',
newname = 'newdatabasenamedata'
)
alter database newdatabasename
modify file
(
name = 'olddatabasenamelogicalnamelog',
newname = 'newdatabasenamelog'
)
나는 백업에서 데이터베이스를 복원하면 자동으로 다중 사용자에 넣 것을 확신 해요,하지만 :
alter database newdatabasename
set multi_user
newdatabase는 모든 사용자가 추가하지 않습니다. 그래서 :
use newdatabasename
create user someuser from login anexistentloginname
sp_addrolemember 'db_owner', 'someuser'
sp_addrolemember 'db_datareader', 'someuser'
sp_addrolemember 'db_datawriter', 'someuser'
갱신 1 :
별도로 각 블록을 실행하거나 각 블록에 go
키워드를 추가해야합니다.
UPDATE2 : 백업 데이터베이스에서
내 여기 나쁜의 newdatabase 얻을 모든 사용자.
@chris 마지막 업데이트를 참조하십시오. – lolol