2012-08-29 54 views
0

在c#項目中,存在預處理器指令的概念,允許您根據是否構建app/dll/etc的調試版本或發行版本來更改編譯的代碼。 TSQL腳本和數據庫項目是否有類似的選項?具體來說,我創建了一些TSQL腳本,它們可以創建動態的sql語句,用於遠程數據庫。在開發和生產中有一個不同的遠程數據庫,因此這兩個版本之間的動態SQL需要不同。每次在部署到開發和部署到產品之間切換時,不必手動更新代碼就會很好。是否可以根據部署的數據庫來更改TSQL腳本?

乾杯, 喬

回答

0

如果你使用了很多動態SQL的,我建議編寫自己的SP執行代碼 - 並將它傳遞給通過VARCHAR(MAX)輸入參數的SP。然後你使用一個佔位符而不是你的數據庫名 - 有點像#DBNAME#,並且你在你的SP中放置了一個REPLACE,它在執行代碼之前實際寫入了真實的DB名。並且您將數據庫名稱保存在參數表中,以便SP可以通過查詢全局變量@@ SERVERNAME來找出哪個數據庫名稱正確。這具有在每個環境中運行完全相同的代碼的優點,以及我在博客中描述的其他好處。 https://wordpress.com/post/dimensionalmodelingblog.wordpress.com/92

相關問題