これは私のストアドプロシージャです
[sp_Get_Data]
(
@IdParam INT,
@OrderBy varchar(50),
@Direc varchar(4),
)
AS
BEGIN
select
[LogID] //int
,[Address] //varchar
,[State] //varchar
,[City]
,[Zip]
FROM LogData
WHERE IdParam = LogID
order by
CASE @Direc
WHEN 'desc' THEN
CASE @OrderBy
WHEN 'LogID' THEN LogID
WHEN 'Address' THEN Address
END
END
DESC,
CASE @Direc
WHEN 'asc' THEN
CASE @OrderBy
WHEN 'LogID' THEN LogID
WHEN 'Address' THEN Address
END
END
EXEC [sp_Get_Data] @IdParam ='..' @OrderBy = 'LogID', @Direc = 'asc' // WORKS FINE
EXEC [sp_Get_Data] @IdParam ='..' @OrderBy = 'Address', @Direc = 'asc'
エラー:
varchar 値 'xyz' をデータ型 int に変換するときに変換に失敗しました。
この動的パラメーターを使用して並べ替えを行う代わりに、合格した場合
ORDER BY Address ASC ....
これは機能します。
ここで欠けている非常に基本的なものはありますか?