2012-05-17 40 views
0

我想设置我的存储过程变量时传递的参数有一定的价值这样的设置复式变量:如何使用SELECT和CASE

ALTER PROCEDURE [dbo].[Procedure1] 
(
    @ID int, 
    @WatchType varchar(100) 
) 
AS 
    SET NOCOUNT ON 
    DECLARE @stock int 
    DECLARE @price float 
    DECLARE @details varchar(max) 

CASE @WatchType 
WHEN 'TIMEX' THEN 
    (SELECT @stock= Stock, 
    @price= Price, 
    @details= Details, 
    FROM tblWatches WHERE Uid= @ID) 
ELSE 
END 

我不断收到一个错误,当我尝试解析它。有谁知道为什么?

回答

0
ALTER PROCEDURE [dbo].[Procedure1] 
(
    @ID int, 
    @WatchType varchar(100) 
) 
AS 
    SET NOCOUNT ON 
    DECLARE @stock int 
    DECLARE @price float 
    DECLARE @details varchar(max) 

IF @WatchType = 'TIMEX' 
BEGIN 
    (SELECT @stock= Stock, 
    @price= Price, 
    @details= Details, 
    FROM tblWatches WHERE Uid = @ID) 
END 
+0

它说我有一个非法的语法附近然后选择 – theNoobProgrammer

+0

删除'THEN',更新。 – Magnus