私は以下のスカラー関数を持っていますが、実際の結果を返しませんがクエリを返すという問題があります。この動的クエリが見つからず、結果を返さないのは何ですか?
誰かが私にここで行方不明または間違っていることを教えてもらえますか?私は次の関数
ALTER function test(@QueId int, @Answer varchar(250)) RETURNS VARCHAR(500) AS
BEGIN
DECLARE @STR varchar(4000)
DECLARE @QRY AS VARCHAR(1000)
SELECT @QRY=
'SELECT @str = COALESCE(@str + '';'','''') + AnswerText '+
'FROM SurveyQuestionAnswerTypes WHERE AnswerType=(Select AnswerType From SurveyQuestions Where QuestionID=' +
CAST(@QueId AS VARCHAR(4)) + ')AND AnswerValue in (' + replace(@Answer,'^',',') +')'
--EXEC sp_executesql @QRY, '@STR VARCHAR(4000)', @STR
RETURN @QRY
END
代わりの結果を返すが形成されている
それはまあ
SELECT @str = COALESCE(@str + ';','') + AnswerText
FROM SurveyQuestionAnswerTypes
WHERE AnswerType = (Select AnswerType
From SurveyQuestions
Where QuestionID=25)AND AnswerValue in (3,4,5,6)
真を参照することができ、関数のみといくつかの拡張ストアドプロシージャは、関数内から実行することができます。 – NoviceToDotNet
@NoviceToDotNet:おそらく**機能**は間違った方法です - これをストアドプロシージャに変換しようとします。機能には、できることにはかなりの制限があります(またはできないこと) –
はい、正確ですが、NETで多くの習慣を習った後、私はそれを何とかしなければなりません。私の見解からこのファクターを呼び出す必要があります。 PROBは、このSPを見てからどのように呼び出すか、それで何をすればいいのですか? – NoviceToDotNet