我想用case语句和End AS进行更新,但在' AS'附近得到错误的语法错误

时间:2014-06-20 13:49:50

标签: sql sql-server

CREATE TABLE DateRange
([Date] DATETIME, IsFutureOrPast BIT)

DECLARE @Date AS DATETIME
SET @DATE ='2014-01-01 00:00:00.000'
WHILE @DATE <='2014-12-31 00:00:00.000'
    BEGIN
        INSERT INTO DateRange ([DATE])
        VALUES (@DATE)
        SET @Date = @Date + 1
    END

--Case Statement to check values and enter flag
DECLARE @CurrentDate AS DATETIME = GETDATE()
UPDATE 
    DateRange
SET  [DATE] =
     CASE
        WHEN @CurrentDate <= [DATE] THEN 0
        ELSE 1
END AS IsPastOrFuture
FROM DateRange
WHERE [Date] IN ( 0, 1)

1 个答案:

答案 0 :(得分:2)

AS IsPastOrFuture对此查询没有意义。只需删除它。

但是,此时您尝试将10分配给名为[Date]的列,这没有多大意义。您是否尝试在表中添加新列?如果是这样,您需要首先在表上运行ALTER语句以添加列。