Sql-Server

如何為所有視圖生成建構腳本

  • December 4, 2019

我想創建一個建構腳本,它可以執行並重新創建所有視圖(以及儲存過程,但一次一步)。

我正在嘗試為我們的所有使用者數據庫(大約 50 個)創建一個基線,以便我們的開發人員在他們的本地機器上執行,基本上是從頭開始重新創建所有數據庫。我已經完成了重新創建所有數據庫、模式、角色、表、索引、約束……的所有初步步驟。我非常依賴 sp_foreachdb 函式,它就像一個魅力。現在我被困在儲存的腳本上,比如視圖和過程,主要是因為一些腳本的長度。

我需要重新創建整個數據庫設置的原因是因為人們很笨,並且在遺留產品中為我們留下了跨數據庫連接和依賴關係。(耶!)如果我們的開發人員首先需要來自 3-4 個其他數據庫的東西,我們怎麼能期望我們的開發人員將數據庫拉到他們的本地機器上進行開發和測試。它並沒有就此結束,這些數據庫依賴於其他事物的存在。呃,循環依賴。

如果我只有一個數據庫,我會連接我方便的 RedGate 工具 SQLCompare 並將這些東西放入一個他們可以執行的腳本中。問題是我們擁有的使用者數據庫的數量以及自動化它的願望。

如果有人可以提供一些建議來幫助我在所有數據庫上重新創建所有腳本對象,我將很樂意接受。至少可以說,手動編寫單個數據庫腳本 50 多次的想法令人生畏。我沒有想到什麼?

謝謝朋友!

除其他外,請查看object_definition()功能和目錄視圖在這裡看到他們的行動。sys.objects

但是,是的……您可能應該只使用您的 SQLCompare 工具,如果您可以訪問它,大多數 RedGate 工具都是該功能的黃金標準。

使用 SSMS… 此功能已通過 Generate Scripts… 功能內置:

與此處的說明類似:

  1. 連接到託管您的數據庫的伺服器
  2. 展開數據庫文件夾
  3. 右鍵點擊數據庫->任務->生成腳本… 在此處輸入圖像描述
  4. 在介紹頁面上點擊下一步
  5. 選擇選擇特定的數據庫對象
  6. 選中視圖旁邊的框(或展開並僅選擇您關心的視圖)
  7. 點擊高級按鈕
  8. 根據自己的喜好調整設置(通常預設設置就可以了
  9. 點擊確定
  10. (可選)選擇保存到新查詢視窗單選按鈕 在此處輸入圖像描述
  11. 點擊下一步
  12. 點擊下一步
  13. 點擊完成關閉嚮導

引用自:https://dba.stackexchange.com/questions/254794