2010-08-05 153 views
3

我想就您在SQL腳本中採用的安裝數據庫的最佳實踐發表意見。最佳實踐SCRIPT安裝數據庫

問題A) 在我的腳本中,我有幾個批次來創建表。 表格中有許多外鍵,因此我必須按正確順序安排批次以避免與FK表衝突。 我想知道如果可能是一個好的做法創建表和所有沒有FK第一列,並在ALTER這樣的表添加FK腳本的末尾。

問題B) 我的腳本應該用來在不同的服務器上創建不同的數據庫。 數據庫在每次安裝時可能有不同的名稱。 現在,在我的劇本我創建一個使用數據庫:

CREATE DATABASE NameX 

和:

USE NameX 

使用它。

因爲我需要手動更新每個安裝的腳本。我認爲在命令腳本內部命名數據庫方面有一個CENTRALIZED方法。 以這種方式更改一個簡單的變量將創建數據庫與我的名字和所有USE語句。 我試圖使用LOCAL VARIABLES,但沒有成功,因爲在GO語句後他們超出了範圍。 我沒有任何使用sqlcmd和變量的經驗。

任何想法如何解決它在我的腳本內? PS:我使用MS SQL 2008年,我將加載我的腳本在MS短信

謝謝你們的幫助,這個社會是偉大的:-)

回答

2
    使用「USE DATABASE」
  • 分離數據庫中創建腳本和數據對象創建腳本
  • 使用一些代碼(設置,部署)來執行創建數據庫腳本通過與真實姓名
  • 替換@database_name
  • 避免

替代:

  • 使用一些替代工具準備部署前的腳本(它只是代表花邊你@@@數據庫名稱@@@實名)
  • 使用bat文件編寫腳本

在Visual Studio替代

  • 使用數據庫項目。VS能夠產生一些變量的設置項目,可以在部署過程中改變..
+0

伊戈爾感謝您杉木意見 – GibboK 2010-08-05 10:20:35

+0

歡迎,萬事如意! – garik 2010-08-05 10:54:26

1

通常一個與腳本所有表開始,然後是FK腳本,索引腳本和其他。這是正常的做法,因爲你不能將關係添加到不存在的表...

至於你的第二個問題 - 我不知道爲什麼集中這個。您最好的選擇是全局搜索/替換SSMS中打開文件的數據庫名稱。

+0

嗨俄德,我想同樣的兩個問題。感謝您的評論 – GibboK 2010-08-05 08:46:32