﻿# 使用中的 SQL Server 版本不支援資料型別 'datetime2'。

當初開始用 Entity Framework 的時候，第一個遇到的問題就是資料無法儲存變更，而錯誤訊息就是【**使用中的 SQL Server 版本不支援資料型別 'datetime2'。**】，我雖然知道 **datetime2** 是 SQL Server 2008 才出現的資料型態，不過我的資料庫明明就是 SQL Server 2005 而且在建立 Entity Framework 模型的時候也沒有指明我要用 SQL Server 2008 啊，為什麼還會報出這種錯誤呢？！底下就讓我娓娓道來。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/96c38d66cd3bacf6f943-image.png)

這問題對於 Entity Framework 的初學者來說著實是一大障礙，我們從 Entity Framework 設計工具來看，如下圖的 **AdminReplyTime** 欄位所設定的型別明明就是 DateTime 欄位，但是當執行到 SaveChanges() 時還是會發生例外狀況。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/e6ae106b268ea8fdfcec-image.png)

解決這個問題的方法請參考以下步驟：

**1\. 開啟 \*.edmx 檔案的 XML 編輯模式**

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/15c40d215142b83d9618-image.png)

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/cd457c11282684fd1c10-SNAGHTML998840f.png)

如果你的 \*.edmx 還在開啟中的話，就會出現以下視窗，點選 Yes 即可開啟 XML 格式的編輯畫面：

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/751e71873df8e2b147fb-SNAGHTML9995820.png)

2\. 找到 \*.edmx 檔案中的 SSDL 宣告區段，並找到 **Schema** 標籤的 **ProviderManifestToken** 屬性，正常在預設的情況下該屬性的值為 **2008**，代表 **SQL Server 2008** 的意思。

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/9783c5264555f3cf5c01-image.png)

3\. 將 **Schema** 標籤的 **ProviderManifestToken** 屬性值修改成 **2005** 即可！

![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/578ff696bd4c8cd874f8-image.png)

**相關連結**

-   [ProviderManifestToken 屬性 (SSDL)](http://msdn.microsoft.com/zh-tw/library/bb896311.aspx)
-   [The version of SQL Server in use does not support datatype 'datetime2'.](http://stackoverflow.com/questions/316422/using-sql-server-2008-and-sql-server-2005-and-date-time)
