Possible Duplicate:
need help with some stored procedure plz需要一些存儲過程的錯誤幫助
ERROR: - 一個值賦給變量不能與數據檢索操作結合
的SELECT語句。
Possible Duplicate:
need help with some stored procedure plz需要一些存儲過程的錯誤幫助
ERROR: - 一個值賦給變量不能與數據檢索操作結合
的SELECT語句。
你正在得到的錯誤是你的選擇正在更新變量,同時吐出resutls。 分手了您的疑問如下:
ALTER PROC [Admin].[sp_Ques]
(
@QuesID bigint
)
AS
BEGIN
DECLARE @Lang int -- ERROR HERE
IF @QuesID = 0
SET @QuesID =NULL
SELECT TOP 1 @Lang=FQ.AdminLanguageID
FROM Admin.Ques FQ
LEFT OUTER JOIN Admin.QuesTypes FQT ON FQT.QuesTypeID=FQ.QuesTypeID
WHERE FQ.QuesID = Coalesce(@QuesID,QuesID)
SELECT TOP 1 FQ.QuesID, FQ.Ques,QuesAns as QuesAns,FQ.QuesAns[Answers], FQT.QuesType ,FQ.QuesTypeID, FQ.QuesParentID, FQ.Active,FQ.AdminLanguageID
FROM Admin.Ques FQ
LEFT OUTER JOIN Admin.QuesTypes FQT ON FQT.QuesTypeID=FQ.QuesTypeID
WHERE FQ.QuesID = Coalesce(@QuesID,QuesID)
SELECT TelerikLanguage FROM Admin.Language
WHERE [email protected]
END
變化
SELECT TOP 1 FQ.QuesID, FQ.Ques,QuesAns as QuesAns,FQ.QuesAns[Answers], FQT.QuesType ,FQ.QuesTypeID, FQ.QuesParentID, FQ.Active,FQ.AdminLanguageID,@Lang=FQ.AdminLanguageID
FROM Admin.Ques FQ
LEFT OUTER JOIN Admin.QuesTypes FQT ON FQT.QuesTypeID=FQ.QuesTypeID
WHERE FQ.QuesID = Coalesce(@QuesID,QuesID)
要
SELECT TOP 1 @Lang=FQ.AdminLanguageID
FROM Admin.Ques FQ
LEFT OUTER JOIN Admin.QuesTypes FQT ON FQT.QuesTypeID=FQ.QuesTypeID
WHERE FQ.QuesID = Coalesce(@QuesID,QuesID)
當你給變量從選擇分配值,在選擇列表中的所有項目必須是賦值給變量。不僅僅是其中的一些。
錯誤消息非常明顯 - 您無法在同一查詢中組合變量賦值和正常結果集檢索。
SELECT TOP 1 FQ.QuesID,
FQ.Ques,
QuesAns as QuesAns,
FQ.QuesAns[Answers],
FQT.QuesType ,
FQ.QuesTypeID,
FQ.QuesParentID,
FQ.Active,
FQ.AdminLanguageID,
@Lang=FQ.AdminLanguageID <---- this is the problem
拆分查詢,一切都應該沒問題。