[SQL]使用新的 SSDT 支援 SQL Server 2016 新增函數

SQL Server 2016 雖然出來有一陣子了,但是搭配的 SSDT 對新增加的 STRING_SPLIT 函數卻不支援,造成資料庫專案會有不少警告訊息。

最近的工作都是使用 Azure SQL Database 居多,而為了能方便管理和版本控制,因此在團隊內我們會使用資料庫專案來搭配 VSTS 使用,讓資料庫也能有版本控制,也就不會發生不一致的狀況了。

隨著 SQL Server 新版本的發行,Azure SQL Database 也從去年就有開始支援 SQL Server 2016 所提供的新函數  STRING_SPLIT ,這對於我們在大量使用  Stored Procedure 來處理前端所傳進來的資料時,透過該函數不僅比以往自己寫 UDF 速度來的快,使用起來也非常的方便,因此在資料庫專案內我們就有不少的 Stored Procedure 內,都會有使用到該函數來做處理。

然而在 SSDT 在平常開發的時候,或者是發行資料庫的時候,當你有使用到 STRING_SPLIT 函數的時候,都會出現有緊告的訊息,雖然不會有錯誤讓你無法使用,但因為這類的警告訊息太多了,導致我們一些要去注意的警告訊息夾雜在當中,就沒有注意到而被忽略掉了,因此我們很希望能找到有支援版本的 SSDT。

經過好一陣子的等待,總算看到 SQL Server 團隊發出新的公告 「Announcing the General Availability (GA) Release of SSDT 17.0 (April 2017)」,就有說明 SSDT 針對前面所描述的問題有做修正,因此當然立馬前往下載來做更新囉 ( 網址 )。這邊也要注意一下,如果您是直接使用 Google or Bing 去搜尋的話,要注意中文網頁上的說明還是之前 16.5 的版本,要記得前往英文版的網址才會有新的版本可以下載安裝。看到以下的網站內容,我一開始是先點選1 的部分下載安裝程式做安裝,後來也有點選比較下面 2 的位置下載來做測試。

但不論是上述哪個版本,安裝都會失敗。

點選查看紀錄檔的內容會看到以下的錯誤狀況,這下看起來有點麻煩了,網路上查文雖然有些人也有類似的狀況,但幾乎都是因為比較舊的作業系統上,而我已經都換成 Windows 10 了,應該也不是作業系統版本汰舊的問題。而也擔心是我是我一個人的問題,我找了其他電腦和其他作業系統搭配,也依然有同樣的狀況發生,因此看起來應該是安裝程式有點問題了。

Error 0x800b0003: Failed to get signer chain from authenticode certificate.
Error 0x800b0003: Failed authenticode verification of payload: C:\ProgramData\Package Cache\.unverified\SSDTPOSTINSTALL
Error 0x800b0003: Failed to verify signature of payload: SSDTPOSTINSTALL

 

後來再跟幾位 SQL Pass 的朋友討論時,經由 Terry 的指點,要我去下載 ISO 檔案回來測試看看,反正都不行了,因此也就死馬當活馬醫的下載來試試看囉。整個 ISO 檔案大約 1G 的大小,因此下載的時候會多花一點時間。

把 ISO 檔案下載回來後,把  ISO 檔案掛載起來,就可以進行安裝了,經過一段時間安裝後,居然可以安裝成功了耶。

而重新開啟 VS 之後,再重建之前有問題的資料庫專案,會發現沒有相關的警告訊息和提示了,看起來透過這個版本的 SSDT ,就不用再擔心有一些奇怪的警告訊息了。

如果有朋友也有類似的問題,可以透過下列網址去進行下載囉,網址 : https://go.microsoft.com/fwlink/?linkid=846628&clcid=0x404