2010-04-20 65 views
0

我在爲每個客戶構建一個需要單獨的SQL Server數據庫的應用程序。在ASP.NET MVC應用程序中管理多個客戶數據庫

爲了實現這個目標,我需要能夠創建一個新的客戶文件夾,將一個原型數據庫的副本放在文件夾中,更改數據庫的名稱,並將其作爲新的「數據庫實例」附加到SQL服務器。原型數據庫包含所有必需的表,字段和索引定義,但沒有數據記錄。我將使用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,Enterprise版本。所以「用戶實例」不是一個選項。

+0

這個目錄是你的實例propably基本目錄,但你可以從每一個當前登錄SQL Server用戶訪問位置添加MDF文件。如果您無法查看SSMS中的文件,則可能存在文件權限問題。嘗試以管理員身份運行SMSS,看看一切工作正常,然後使用文件權限,以便普通用戶可以訪問。 – LukLed 2010-04-20 23:23:43

+0

@LukLed:我有權訪問其新目錄中的文件,但是當我嘗試使用SSMS附加它們時,它給了我一個錯誤,即它無法在基本目錄中找到這些文件。 – 2010-04-21 01:13:26

+0

你如何登錄SSMS? Windows身份驗證?從每個位置附加文件都沒有技術障礙,所以您必須在其他位置找到解決方案。 – LukLed 2010-04-21 06:05:50

回答

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; 
+0

所以你認爲這個問題只是SSMS,如果我使用SMO附加,我不會有同樣的問題? – 2010-04-21 01:18:58

+0

SSMS以及SMO能夠在任意位置附加數據庫文件。您需要在附加對話框中添加所有數據庫文件:MDF,所有NDF和LDF。 – 2010-04-21 01:51:17

相關問題