2013-02-07 63 views
2

我一直在使用Amazon RDS中託管的SQL Server進行一些研究。我打算具有需要多租戶解決方案的應用程序 - 每個客戶一個數據庫與核心數據庫的登錄等在Amazon RDS中託管的SQL Server中自動創建數據庫

因此,進出口與RDS/SQL服務器玩,但有來,我需要克服的問題。首先,如何自動創建數據庫?我RDS我不能從一個bak文件恢復,我想從模板創建數據庫模式。有沒有人有這方面的經驗,如果是的話,你可以指導我一些提示?

感謝,

kseudo

+0

你有沒有看使用SMO? (http://www.mssqltips.com/sqlservertip/1826/getting-started-with-sql-server-management-objects-smo/),或者簡單地使用Management Studio和「生成腳本...」任務? – chrisb

回答

1

生成腳本是一個很好的起點,但如果你真正想實現自動化數據庫創建你想要轉換的腳本是從SQL Server的輸出生成腳本成模板。

一個好辦法做到這一點是創建.NET應用程序,甚至只是一個存儲過程,將做一個查找和替換上的腳本,一旦你把它做成一個模板。

  1. 所有你想在它 然後腳本退出數據庫(所有數據庫對象)的對象創建模板的客戶數據庫。
  2. 在C#或SQL通過在每個對象名稱的變量,建立動態查詢:

    CREATE DATABASE CustomerDB_1 ... 
    
    "CREATE DATABASE CustomerDB_{0}" //Formatted String in C# 
    'CREATE DATABASE CustomerDB_' + @vchCustomerID //Dynamic SQL 
    

    如果每個對象名稱中的客戶ID和每個數據庫都有一個唯一的客戶ID,然後你可以在用適當的值替換變量之後簡單地運行查詢,並且您都已設置完畢。

+0

噢,如果您不使用無限制的數據庫計劃,可以考慮使用Amazon RDS,您可以始終擁有1個主數據庫,併爲每位客戶提供不同的表格 - 每個客戶可以擁有自己的模式,而且您不需要擔心數據庫限制的最大數量。不知道這是否適用於你,而只是一個想法。 –

+0

謝謝克里斯, 您的第一篇文章給了我一些想法如何實施我的問題的解決方案。 我會再發布我應該已經取得了一些進展......再次感謝 – kSeudo

+0

嗨@kSeudo我尋找到類似的設置。我們需要所有客戶的個人數據庫,但創建過程需要很長時間,我們希望將其自動化。你有沒有設法解決你的問題與克里斯的建議?提前致謝。 – megamaiku

相關問題