小编Nis*_*sfa的帖子

ALTER 和 UPDATE 后无效的列名错误

我正在尝试更新表中的特定列,但由于 SQL 编译时列名 IssueTimeUTC 实际上并不存在,因此出现错误。这是我的示例代码:

   WHILE  @startissuetime<='23:30'
        BEGIN
        ALTER TABLE Intraday_Forecast_temp
            ADD IssueTimeUTC SMALLDATETIME 

            UPDATE Intraday_Forecast_temp
            SET IssueTimeUTC=CAST(@tempdate AS SMALLDATETIME)
            WHERE DateTimeUTC>CAST(@tempdate AS SMALLDATETIME)

            UPDATE Intraday_Forecast_temp
            SET IssueTimeUTC=Dateadd(d,-1,CAST(@tempdate AS SMALLDATETIME))
            WHERE
Run Code Online (Sandbox Code Playgroud)

DateTimeUTC<=CAST(@tempdate AS S MALLDATETIME) END

我已经阅读了多个类似的帖子,但我无法做任何事情,因此我恳请您是否可以帮助我。

我得到的错误是这样的:

消息 207,级别 16,状态 1,第 56 行无效的列名称“IssueTimeUTC”。

更新:所以基本上我无法找到这个特定问题的确切解决方案,但我只是找到了一种“绕过”问题的方法。所以这是我使用的更新代码。

WHILE  @startissuetime<='23:30'
    BEGIN
        ALTER TABLE Intraday_Forecast_temp
        DROP COLUMN IssueTimeUTC 
        --------
        BULK INSERT..... 
        --------
        ALTER TABLE Intraday_Forecast_temp
        ADD IssueTimeUTC SMALLDATETIME 

        UPDATE Intraday_Forecast_temp
        SET IssueTimeUTC=CAST(@tempdate AS SMALLDATETIME)
        WHERE DateTimeUTC>CAST(@tempdate AS SMALLDATETIME)

        UPDATE Intraday_Forecast_temp
        SET IssueTimeUTC=Dateadd(d,-1,CAST(@tempdate AS …
Run Code Online (Sandbox Code Playgroud)

sql-server

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql-server ×1