2017-02-28 82 views
0

我在Visual Studio解決方案中有兩個SQL Server數據庫項目。其中之一是遺留數據庫,我只是在我的主數據庫項目中使用數據庫引用。我有我得到類似在數據庫項目的每個文件基礎上抑制SQL警告

SELECT * 
FROM [$(ReferenceDb)].[dbo].[Table1] t 
WHERE t.IndexedColumnId IN (1, 55, 99) 

在我的主數據庫項目視圖

SR0004:Microsoft.Rules.Data:沒有被用來作爲 一個IN謂詞測試表達式索引中的列可能會降低性能。

參考數據庫在此列上有一個索引。請注意,這是用於演示目的的簡化代碼。我實際上將參考數據庫中的表加入到我的主數據庫中的表中。如果我將這個簡單的代碼移動到參考數據庫項目,我不會收到任何警告。看起來好像主數據庫項目沒有選擇參考數據庫中的索引。

我想要做的就是壓制這個警告;但我不想爲整個主數據庫項目做這件事。我只想抑制它對於某些SQL視圖/存儲過程等。

我正在尋找類似於C#文件中可用的警告消息的源代碼。

[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "args")] 

但我需要能夠在主數據庫項目中的.sql文件中執行此操作。

我辯論關閉整個項目的警告,但真的不想走這條路。

對此問題有何建議?

回答

1

轉到您的項目屬性。你顯然已經開啓了代碼分析。您仍然可以關閉整個項目,但可以關閉該特定警告。

我不認爲有可能關閉這個特定的警告只是一個文件,因爲它是一個項目級別的分析。

+0

這正是我想要避免的。我知道如何關閉項目,但我想讓它留下,但只是忽略它在特定的點。類似於通過使用「#pragma警告禁用xxxx」功能或「System.Diagnostics.CodeAnalysis.SuppressMessage」元數據標記在C#中的文件抑制。 看起來像這個問題可能沒有一個有效的答案,直到潛在的更高版本。 –

+0

很確定它不可能關閉每個文件。您可以禁止警告,但不能進行規則檢查。我知道這不是你正在尋找的,但沒有意識到有什麼方法可以完成你現在想要的。 –

+1

嘗試......的+1,但以不接受的方式離開。也許在幾年後,隨着新版本的發佈,它們將成爲一種解決方案。我基本上得出了同樣的結論。只有我想到的解決辦法是在他們自己的項目中擁有這些「特殊」跨數據庫視圖,我可以關閉警告。然後將其作爲附加參考添加到我的主數據庫項目中。似乎在截止日期臨近的時候是過度的;(我將不得不忍受引入的技術債務。 –