データベースに接続してそのデータを分析する C# で記述されたアプリケーションがあり、データベースには自動テストの実行に関する情報が保存されます。上記の条件を満たすテストを取得したいと考えています。しかし、私たちはさまざまなプロジェクトを持っており、ますますサポートする予定なので、それぞれに異なる手順を作成したくありませんが、名前を渡します-2番目のパラメーター deploy パラメーターとして、クエリはプロジェクトに依存し、データをに返します申請書を提出し、レポートで送信します。
とりあえずこんな感じです。
CREATE PROCEDURE [dbo].[SuspectsForFalsePositive](@build_id INT, @deploy VARCHAR(25))
AS
BEGIN
SET NOCOUNT ON;
DECLARE @i int, @build int, @deployname varchar(25), @SQL varchar(max)
DECLARE @result table (tc int, fp float)
SET @i = 0
SET @build = @build_id
SET @deployname = @deploy
SET @SQL = 'insert '+@result+'select testcase_id, fail_percentage FROM [BuildTestResults].[dbo].['+@deployname+'TestCaseExecution]
where build_id = @build and fail_percentage >= 70'
--INSERT @result select testcase_id, fail_percentage FROM [BuildTestResults]
--.[dbo].[ABCTestCaseExecution]
--where build_id = @build and fail_percentage >= 70
--commented works
EXEC(@SQL)
WHILE (@@rowcount = 0)
BEGIN
SET @build = @build - 1
EXEC(@SQL)
--INSERT @result select testcase_id, fail_percentage FROM [BuildTestResults].[dbo]. --[ABCTestCaseExecution]
--where build_id = @build and fail_percentage >= 70
--commented works
END
select * from @result order by fp DESC
END
GO
アドバイスをありがとう!