0

我正在构建一个应用程序,该应用程序需要为每个客户提供单独的 SQL Server 数据库。

为此,我需要能够创建一个新的客户文件夹,将原型数据库的副本放在文件夹中,更改数据库的名称,并将其作为新的“数据库实例”附加到 SQL Server。原型数据库包含所有必需的表、字段和索引定义,但没有数据记录。我将使用 SMO 来管理附加、分离和重命名数据库。

在创建原型数据库的过程中,我尝试使用 Sql Server Management Studio 将数据库(伴侣 .MDF、.LDF 对)的副本附加到 SQL Server,并发现 SSMS 期望数据库驻留在

c:\program files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\MyDatabaseName.MDF

这是 SQL Server 的“功能”吗?有没有办法在单独的目录中管理单个数据库?还是我必须将所有客户数据库放在同一个目录中?(我希望有比这更好的控制)。

注意:我目前使用的是 SQL Server Express,但仅​​用于测试目的。生产数据库将是 SQL Server 2008 企业版。所以“用户实例”不是一个选项。

4

1 回答 1

0

MDF 中有一个表,其中包含所有数据库文件的物理路径,因为它们位于与其分离的实例上。您可以在附加操作期间覆盖位置:

CREATE DATABASE <dbname>
 ON (name=dbfilelogicalname, filename='c:\myNewPath\dbfilename.mdf'),
 (name=dbfile2logicalname, filename='c:\myNewPath\dbfilename2.ndf'),
 (name=dbloglogicalname, filename='c:\myNewPath\dblogfilename.ldf')
 FOR ATTACH;
于 2010-04-21T00:24:05.170 回答