2010-01-13 30 views
2

首先,我是新來的,所以,我會說你好,並感謝多年的幫助。SQL Server 2008 + C#+ Inno Installer

我有以下問題:

我需要創建一個安裝使用SQL Server 2008中我使用InnoSetup安裝程序,因爲我認爲這可能是最好的選擇,一個C#應用程序,但我不知道如何安裝SQL Server 2008以及應安裝在本地計算機上的多個數據庫(.mdf,.ldf或.bak)。

所以我的任務是,讓C#應用程序和SQL Server 2008引擎+工具在我的電腦中以無人照管的方式分發給我的客戶端(因爲他們使用數據庫的事實應該是透明的最終用戶)。

我確定它是可能的,實際上我安裝了C#應用程序和SQL Server引擎(已下載SQLEXP32_x86_ENY.exe),但數據庫呢?這是我的問題,以及SQL SERVER的正確配置:因爲您可能知道,它並不是微不足道的使它正常工作(訪問控制問題,管理員權限等)。

比如爲了安裝SQL Server我這樣做是在控制檯模式下,微軟祝福,這樣做的:

SQLEXP32_x86_ENY.exe /ACTION=install /FEATURES=SQL,Tools 
/INSTANCENAME=SQLExpress 
/SECURITYMODE=SQL /SAPWD=**** 
/SQLSYSADMINACCOUNTS="Builtin\Administrators" 
\ENABLERANU /SQLSVCACCOUNT="" 
/SQLSVCPASSWORD="" 

我應該寫在/ SQLSVCACCOUNT/SQLSVCPASSWORD,例如?

我該如何導入我提供的現有數據庫?直到最近人們習慣使用SQLDMO CMO對象,但我讀到的那個不再被支持。

你是怎麼做的?這是一個問題,至少圓頂提示可能是有用的。

我的客戶需要一個數據庫在本地,但在一開始,他們需要先創建一些數據庫,以及一些初始數據。

在此先感謝!

回答

1

首先,您知道您下載的文件SQLEXP32_x86_ENY.exe是SQL Server Express版 - 對吧?即使用於商業目的,它也是免費的,但它有一些限制(只使用1個CPU,最大數據庫大小限制爲4 GB以及更多)。

其次,爲您SQLSVCACCOUNT - 對於生產環境最好的做法是有一個特殊的系統帳戶下運行SQL Server - 有點像「人造」用戶名爲無論你怎麼稱呼它SQLServerUser或。此帳戶有一個密碼,這些是您爲SQLSVCACCOUNTSQLSVCPASSWORD提供的兩件事情。

對於開發環境,這些設置通常設置爲類似SYSTEM\NETWORK SERVICENT AUTHORITY\LOCAL SYSTEM類似的東西(用於帳戶)。

至於現有數據庫附加到新的SQL Server實例 - 你有幾種選擇:

  • ,如果你能做到這一點互動,下載並安裝SQL Server Management Studio中的Express版本,並附上你的數據庫中該工具

  • 如果您需要在安裝過程中執行此操作,則可以使用sqlcmd - 命令行SQL工具 - 直接從命令行執行類似ATTACH DATABASE ......的SQL語句。 sqlcmd與SQL Server(包括Express版本)一起安裝

  • 如果您需要完全控制,則可以使用SMO - SQL Server管理對象 - 隨SQL Server 2008一起安裝以自動執行您的任務(而不是傳統的SQL-DMO,因此不再支持)

+0

應該/ InnoSetup安裝程序可以自動且透明地創建仿真SQLServerUser用戶和相關密碼? – ChrisW 2010-01-13 11:37:08

+0

是的,它絕對可以 - 有很多API可以在Windows中創建新用戶併爲其設置屬性 – 2010-01-13 12:53:24

0

最後,我將與SQL Server Compact 3.5工作......這GIEVES我足夠的資源爲我的建議,並且是有點更容易部署。 以及,我會確保我的用戶不會以不好的方式使用數據庫... 謝謝!!!!! 無論如何,我會不斷嘗試正確部署一個SQL SERVER 2008,但Vista是一個痛苦的屁股!hahaah

Thanks marc_s !!!!!!!!!!