0

mdf および ldf ファイルを移動する SQL Server 2005 データベースの名前を変更する場合。

まず、プログラムのインストールでスクリプトを実行します。

Alter Database [[DBNAME]] MODIFY NAME = [[RENAMEDBNAME]] 

Alter Database [[RENAMEDBNAME]] MODIFY FILE ( NAME =  [[DBNAME]], NEWNAME = [[RENAMEDBNAME]] )

Alter Database [[RENAMEDBNAME]] MODIFY FILE ( NAME =  [[DBNAME]_log], NEWNAME = [[RENAMEDBNAME]_log] )

Alter Database [[RENAMEDBNAME]] MODIFY FILE ( NAME =[[RENAMEDBNAME]]  , FILENAME  ='[DBPATH][RENAMEDBNAME].mdf'  )

Alter Database [[RENAMEDBNAME]] MODIFY FILE ( NAME =[[RENAMEDBNAME]_log]  , FILENAME  ='[DBPATH][RENAMEDBNAME]_log.ldf'  )

ALTER DATABASE [[RENAMEDBNAME]] SET OFFLINE GO

次に、ファイルをコードで移動します。

次に、使用する次のスクリプトで

ALTER DATABASE  [[RENAMEDBNAME]] SET ONLINE GO

データベースにテーブルがありません - アイデアはありますか? バックアップと復元を使用する必要がありますか?

ありがとう

4

2 に答える 2

1

Backup and restore is by far the easiest and most reliable way to do this. You can use the following script to accomplish what you want though:

/* Detach the database */
USE [master]
GO
ALTER DATABASE [junk] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]
GO
EXEC master.dbo.sp_detach_db @dbname = N'junk'
GO

/* Move your files and reattach using this script */
USE [master]
GO
CREATE DATABASE [junk2] ON 
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50\MSSQL\DATA\junk2.mdf' ),
( FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50\MSSQL\DATA\junk2_log.ldf' )
 FOR ATTACH
GO
于 2012-11-07T19:55:02.640 に答える
0

Technet の次の記事を参照してください。それらはあなたが間違っていると思われる2つのことです。

  1. 変更する前に SET OFFLINE を実行する必要があります
  2. 一度に 1 つのファイルしか実行できません。

参考記事はこちら

于 2012-11-07T19:48:53.127 に答える