2013-12-12 24 views
1

我想放棄包括在數據庫項目中的表來創建他們,所以每次在發佈的項目,我做這些表的完整版本(因爲默認情況下它似乎工作時間之前作爲增量構建)。存在於目標數據庫但不是在源項目,我想是相反或多或少刪掉表DB項目

我見過的選項刪除表(和其他實體)。在創建它們之前,從目標中刪除存在於數據庫項目中的表。

+0

FYI此相關的SO問題,只是出現了...我想你也許能夠幫助這個傢伙......或者,你可能會喜歡的答案,那將要對他的問題發佈:HTTP ://stackoverflow.com/questions/20555237/tfs-and-database-projects-sql-server –

回答

0

一個簡單的方法來做到這一點,是把它放在SQL代碼,在CREATE TABLE之前:

IF EXISTS (SELECT * FROM [<db_name>].INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zzWorkTable1') 
    DROP TABLE [<db_name>].dbo.[zzWorkTable1] 

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zzWorkTable1') 
    DROP TABLE dbo.[zzWorkTable1] 

或者,如果你在另一個數據庫做如果你想要一些其他的方法......你能告訴我們關於這個項目的一些信息,比如什麼樣的步驟創建表格?

+1

該項目是VS 2012 DB項目,允許你從的在SQL Server Explorer中做了一個「拖ñ下降」要包含的表,然後將其發佈到某處而不是複製並粘貼可實際部署項目的查詢。好的是,它部署了所需的部分,但有時候我可能需要進行全面部署,而且我期待着可能會在某處丟失的選項。我在腳本中已經有了這些查詢,但是如果我希望腳本像VS中的表一樣行爲而不是隨機腳本,則不兼容。 – Wallack

+0

@Wallack有趣......如果你想要一個腳本像表格一樣行事,你可能想把這個腳本變成一個'VIEW'。至於「其他方法」的信息,這將有助於更多地瞭解技術 - 比如如何創建表 - 所以我可以建議使用DROP TABLE方法與創建時位於同一位置。如果那對你有幫助。另外,什麼樣的項目?這是發生在控制檯應用程序,Web應用程序,SSRS(Reporting Services)還是SSIS(Integration Services - 不太可能,因爲我聽說開箱即用,VS 2012沒有處理SSIS開發)? –

+1

你可能誤解了我! VS 2012可以選擇創建一個與數據庫(表,視圖,觸發器,索引...)相同結構的數據庫項目,並且它會嘗試在部署之前對其進行編譯以查看其完整性,然後在指定的位置執行部署位置。關於這一點的好處是,您可以保持數據庫的更新,因爲您可以將項目與其他數據一起放入TFS中。問題是,每次部署此項目時,它只會創建不存在或需要重建的表。 – Wallack