2010-03-26 57 views
7

有一個使用SQL數據庫的應用程序。該應用程序已經發布,但現在我正在進行更新。在更新中,我在數據庫的表中添加了一個額外的列。更改DBML,如何更改SQL數據庫?

我已經創建使用DataContext.CreateDatabase()從我DMBL數據庫(而不是其他的方式,我發現是後來更常見的情況)

我有在LINQ的設施中,我可以更新我的SQL數據庫方案?

回答

1

不,對不起。我也想有這樣的設施。您必須手動升級數據庫。

這裏的方法:

  • 創建一個存儲過程稱爲像 「spGetDBVersion」。此過程僅返回當前已部署的數據庫版本的整數。
  • 在啓動/安裝時檢查該過程是否與您的程序所期望的版本匹配。
  • 如果不是 - >以正確的順序執行更新腳本。例如:如果spGetDBVersion返回2和您的應用程序預計5,那麼你必須執行Update_To_3.sql,Update_To_4.sql和Update_To_5.sql

提示:最初的版本之後,我不會改變我的數據庫架構與工具。我總是編寫腳本,並將其放入我的下一個更新腳本中。

不是你問了什麼,而是一個切實可行的解決方案。

的UpdateScript可能看起來像這樣:

** **僞

-- Update to version 2 
alter table [MyTable] add newColumn int null 
GO 
update [MyTable] set [newColumn] = 0 
GO 
alter table [MyTable] change newColumn int not null 
GO 
alter procedure spGetDBVersion 
as 
begin 
    select 2 as CurrentVersion 
end 
+0

非常好,我喜歡這個解決方案! – 2010-03-29 08:57:09

0

如果在數據庫中更改你的表,你應該刪除的dbml文件中的相應表格。 再次添加它,並且dbml文件應該再次生成,以便您的更改生效。