2015-11-05 48 views
3

我安裝了Visual Studio 2012並安裝了SSDT版本11.1.20627.0。SSDT模式比較鎖SET QUOTED_IDENTIFIER關閉

在嘗試使用模式比較將其推送到服務器時,問題之一就是存在於SSDT項目中的所有存儲過程。 SP的SET QUOTED_IDENTIFIER總是被切換到OFF,我無法找到改變這種行爲的方式。

目標數據庫是我的本地數據庫,其默認QUOTED_IDENTIFIER更改爲ON(真);

在數據庫項目屬性頁面中,選中了「SET QUOTED_IDENTIFIER」複選框,但整個複選框被禁用。

我試圖改變一些模式比較選項,如「忽略表選項」,結果是一樣的:它總是給我一些更新腳本象下面這樣:

GO 
USE [$(DatabaseName)]; 


GO 
PRINT N'Creating [dbo].[myspname]...'; 


GO 
SET ANSI_NULLS ON; 

SET QUOTED_IDENTIFIER OFF; 


GO 

任何暗示都appricated

回答

2

最後搞明白了。它是由舊版SSDT造成的。安裝SSDT標籤SSDT_11.0.50730.0現在似乎工作。

我不得不抱怨對SSDT的怪版本規則:它看起來

  • 11.xxxxx是的Visual Studio 2012

  • 12.xxxxx是爲Visual Studio 2013

  • 14 .xxxxx適用於Visual Studio 2015

和第二個版本號在安裝介質中始終爲0,但是如果您安裝了它並在Visual Studio的「關於」窗口中查看它。它將更改爲1.

這實在令人困惑,因爲它會讓您相信版本11.1.20627.0比版本11.0.50730.0更新。這是不正確的。

1

QUOTED_IDENTIFIER選項可以在項目級別和過程級別進行設置。點擊存儲過程文件 - >屬性,並檢查QUOTED_IDENTIFIER是否在那裏啓用。

此外,當使用模式比較驗證是否啓用或禁用選項「忽略帶引號的標識符」。

+0

感謝您的評論。你能讓我知道你的SSDT版本嗎?對於我的版本11.1.20627.0,過程文件屬性中沒有QUOTED_IDENTIFIER屬性。架構比較選項中也沒有忽略QUOTED IDENTIFIER複選框。 – Zee

+0

我有這個版本:SQL Server Data Tools 12.0.50730.0 – scar80