column_name
および値の代わりにwhere句に2つのパラメータを追加しようとしています。私がオンラインで見てきたすべてのものは、ストアドプロシージャにすでにある列の値のパラメータの例を示していますが、列自体のためのパラメータの例はありません。ここでストアド・プロシージャのSQL where句column_nameにパラメータを追加します
は、私がこれまで持っているものです。
CREATE PROCEDURE [mobile].[p_get_insptn_log_by_date]
(@SEARCHBY SYSNAME, @SEARCHVALUE NVARCHAR(100))
AS
SET NOCOUNT ON
SELECT
[id], [application_name], [login_id], [log_ts],
[insptn_log_msg_type_code], [log_msg_text], [insptn_log_lvl_code]
FROM
[dbo].[Insptn_log]
WHERE
insptn_log_lvl_code <> 'info' AND
CASE
WHEN @SEARCHBY = 'application_name'
THEN application_name = @SEARCHVALUE
WHEN @SEARCHBY = 'login_id'
THEN login_id = @SEARCHVALUE
WHEN @SEARCHBY = 'log_ts' log_ts < CONVERT(DATETIME, @SEARCHVALUE)
END
ことがあるので、SQL Server Management Studioのは、case文の最初の=
符号と第二WHEN
下が構文エラーをというエラーがスローされますCASE
声明。
このタスクを実行するための正しい構文を探しています。どんな助けでも大歓迎です。
+++++ EDIT +++++
私は、以前@SEARCHVALUE
のタイプは、ユーザーが@SEARCHBY
値として「log_ts」を選択したときDATETIME
にNVARCHAR
から行くことができることになりますことを言及しませんでした。私はまた、私のMVCアプリケーションから来るParamsのDataTypesのための上記のスクリプトを更新しました。
@SEARCHBYはCHAR(1文字以上)にすることはできません。 – DVT