-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なので含むことはできません)が原因でエラーが発生するので、これはさらに混乱します。
ありがとうございました。
SSDTデータベースプロジェクトを使用していますか? –
はい、その重要な点は私の悪いことを言い忘れました。 – Elaskanator
vNextまたはXAMLビルドを使用しているのはどのビルドですか? –