10

ほぼ15のデータベースが実行されているSQLServer2008をインストールしています。スペースが不足しているため、データパスを別のドライブに移動したいと思います。このためのベストプラクティスは何ですか。私はSQLServerの管理に比較的慣れていないので、SQLコマンドを含める場合は、詳細に説明してください。

-SQLServerプロパティのパスをSQLManagementStudio2008から新しいパスに変更しました。ただし、既存のデータベースを新しいパスに配置することもできます

4

2 に答える 2

12

まず、データベースをデタッチします。

USE master;
GO
-- Important! We need to drop the existing connections.
ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_detach_db @dbname = N'DBName';
GO

次のステップ-このデータベースファイルのファイル.mdfと.ldfを新しい場所にコピーします

そして、データベースを接続します。

USE master;
EXEC sp_attach_db @dbname = N'dbName', 
@filename1 = N'',  --path do .mdf
@filename2 = N'';  --path to .ldf
GO

すべてのデータベースを1つずつアタッチおよびデタッチしたくない場合は、sys.databases動的管理ビューで検索するcurosrを使用して、必要なすべてのデータベース(もちろんシステムを除く)をアタッチおよびデタッチするSQLスクリプトを生成できます。 。ただし、データベースファイルをコピーすることを忘れないでください。

于 2011-07-28T09:26:48.350 に答える
1

1つの方法は、取り外して取り付けることです。

コマンド/手順については、MSDNの記事「方法:デタッチとアタッチを使用してデータベースを移動する(Transact-SQL)」を参照してください。

于 2011-07-28T09:06:23.400 に答える