'CASE
'を使用しているうちに、聞いたことがない問題が発生しました。
問題はそうです:フィールドとして 'SELECT
'句の 'CASE
'ステートメントを使用しています。 int型のデータ型を持つ列を呼び出すと成功です。ただし、varcharまたはdatetimeを呼び出すと、失敗します。
エラーの結果、「CASE
」ステートメントを含むテンポラリフィールドをint
とマークしたと言われていますが、そうではありません。 ...変換の失敗 'CASE'について
'ストアドプロシージャ' のコンテンツ
CREATE PROC spRegistry_PersonsGetField
@ID int,
@Field varchar(100)
AS
SELECT CASE @Field
WHEN 'Name' THEN Name
WHEN 'Surname' THEN Surname
WHEN 'Username' THEN Username
WHEN 'Password' THEN Password
WHEN 'Status' THEN dbo.fnStatus(Status)
WHEN 'EMail' THEN EMail
WHEN 'Tel' THEN dbo.fnIsEmpty(Tel)
WHEN 'Address' THEN dbo.fnIsEmpty(Address)
WHEN 'City' THEN dbo.fnIsEmpty(City)
WHEN 'BirthDate' THEN dbo.fnDate(BirthDate)
WHEN 'Gender' THEN dbo.fnGender(Gender)
WHEN 'Lang' THEN Lang
ELSE NULL
END
AS [Alan] varchar(200)
FROM Registry_Persons
WHERE ID = @ID
マイクエリ
EXEC spRegistry_PersonsGetField 1、 '誕生日'
エラーメッセージを助けてください
varchar値'04/11/2011 'をデータ型intに変換するときに変換に失敗しました。
「名前」と言う別のパラメータを渡した場合、SPは機能しますか? 'dbo.fnDate'関数は間違いなく機能しますか? – ipr101
その機能は正しく動作します – Mesut