我在尝试在存储过程的SQL中设置变量时遇到问题。我正在检查一个记录是否设置为活动状态,并且想法是将其设置为非活动状态,反之亦然。SQL存储过程问题
诚然,我不是最好的SQL和尝试CASE语句与我一起例子,但是没有什么工作......
有人能告诉我,我错过了什么???
谢谢!
ALTER Procedure [dbo].[spAlterStatus]
@CID as int,
@Active varchar(10)
AS
select @Active = Active from Course where
CID = @CID;
if @Active='0' set @Active = '1';
if @Active='1' set @Active = '0';
UPDATE Course
SET Active = @Active WHERE CourseID = @CourseID
什么方言SQL什么服务器(MySQL,PostGreSQL,Oracle,SQLServer等)? – ircmaxell 2010-06-21 16:11:29
@ircmaxell他有标记[sql-server] – 2010-06-21 16:12:32
明显的标志:您的更新引用@CourseID,而参数是@CID。 另外,你确定select的返回总是为'1'或'0'吗?您没有任何其他值或填充的catch/case,并且会在这些情况下静默地将该行更新为相同的值。 – Joe 2010-06-21 16:12:59