mssqlストアドプロシージャのパラメータを使用して、小さな結果と詳細な結果を切り替えたいと思います(保守性、パフォーマンス、およびネットワーク負荷の理由から)。
パラメータが1に設定されている場合、すべての列を取得します。それ以外の場合、最も重要なのは1つまたは2つだけです。非常に限られた方法で、次のように機能します。
ALTER PROCEDURE [dbo].[GetAllUsers]
@detail BIT
AS
IF @detail = 1 SELECT UserName, Title, UserID FROM Users
ELSE SELECT Username FROM Users
しかし、WHEN句を組み合わせて使用したいと思います。以下は私が試したものですが、これは機能しません。
ALTER PROCEDURE [dbo].[GetAllUsers]
@detail BIT
AS
CASE @detail
WHEN 1 THEN SELECT UserName, Title, UserID
ELSE SELECT UserName END
FROM Users
WHERE UserID < 5
そのような何かを達成する方法はありますか?