2017-07-10 4 views
-1

パーサー検証エラーをキャッチするためにTFSゲートド・ビルド検証をどのように構成しますか?未知のエラー - SELECT DISTINCTが指定されている場合は、ORDER BY項目が選択リストに表示されます。

たとえば、私たちは、ゲーテッドTFSは検証を構築XAMLでチェックインしても、SSDTを渡さ渡すまま無効なステートメントを使用してストアドプロシージャを持っていた2全体の年間のSQL Serverの2008R2データベースに公開!

CREATE PROCEDURE This_Should_Fail 
AS BEGIN 
    DECLARE @TableVariable TABLE(
     ID INT IDENTITY(1, 1), 
     Name VARCHAR(MAX) 
    ) 
    SELECT DISTINCT TOP 1 Name 
    FROM @TableVariable 
    ORDER BY ID 
END 

私は適切なエラーを取得し、このステートメントを実行すると、私はTFSでのフルバージョンを実行すると、しかしエラーがありません!

レベル15、状態1、プロシージャThis_Should_Fail、Line 7 SELECT DISTINCTが指定されている場合は、ORDER BY項目が選択リストに表示されている必要があります。

しかし定義もすべてのエラーをスローしません実行、このようになりを変更したときにエラーが最近まで遭遇したことはなかったです!

CREATE PROCEDURE This_Should_Fail 
AS BEGIN 
    DECLARE @TableVariable TABLE(
     ID INT IDENTITY(1, 1), 
     Name VARCHAR(MAX), 
     ForeignKeyID INT 
    ) 

    --create some sample data 
    INSERT INTO @TableVariable(Name, ForeignKeyID) 
    VALUES ('Obj1', 999), ('Obj2', 999), ('Obj3', 0), ('Obj4', 0) 

    DECLARE @ForeignKeyID INT = 999--some lookup here 

    SELECT DISTINCT TOP 1 Name 
    FROM @TableVariable 
    WHERE ForeignKeyID = @ForeignKeyID 
END 

TFSブランチの変更がどこにも展開されないうちに、変更が行われてから1ヵ月がかかりました。どちらの場合も、選択したすべての列の順序はありませんでした。

SSMS 2014で手動で実行してもTFSのどちらのバージョン(私の会社のIPなので含むことはできません)が原因でエラーが発生するので、これはさらに混乱します。

ありがとうございました。

+0

SSDTデータベースプロジェクトを使用していますか? –

+0

はい、その重要な点は私の悪いことを言い忘れました。 – Elaskanator

+0

vNextまたはXAMLビルドを使用しているのはどのビルドですか? –

答えて

関連する問題