【发布时间】:2012-05-17 16:04:16
【问题描述】:
在我的存储过程中,我面临以下问题 - 我该如何解决?
CREATE PROC RupeshTest(@QueID int, @Answer varchar(250)) as
BEGIN
DECLARE @STR varchar(4000)
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,'^',','))
END
当我运行它时
RupeshTest 25, '2^3^5^7^8'
我收到以下错误
消息 245,级别 16,状态 1,过程 RupeshTest,第 4 行
将 varchar 值 '2,3,5,7,8' 转换为数据类型 int 时转换失败。
虽然我理解这个问题,但无法解决它,有人可以告诉我如何解决它。
【问题讨论】:
-
我在替换功能中遇到问题..
-
格式化工作得很好:-)
-
您正在尝试神奇的编程 - 为什么您希望 SQL 语言在单个字符串参数中进行查看,并决定它应该将其拆分为逗号并将其转多个参数,当我知道没有其他编程语言可以做到这一点时?
-
解决方案是将SQL命令制作/创建为字符串并运行它。
标签: c# asp.net sql-server tsql stored-procedures