Sql server 尝试插入临时文件时出现T-SQL错误

Sql server 尝试插入临时文件时出现T-SQL错误,sql-server,tsql,temp-tables,insert-into,Sql Server,Tsql,Temp Tables,Insert Into,我试图从select语句填充一个临时表 但是我得到了这个错误: 提供的值的列名或数目与表定义不匹配 我已经使用LEAD跟踪到了endtime专栏;如果我删除了这个LEAD列,它会工作吗 不知道我错过了什么 谢谢你,迈克 IF OBJECT_ID('tempdb.dbo.#flextx', 'U') IS NOT NULL DROP TABLE #flextx; CREATE TABLE dbo.#flextx ( OmanId VARCHAR(255), M

我试图从select语句填充一个临时表

但是我得到了这个错误:

提供的值的列名或数目与表定义不匹配

我已经使用
LEAD
跟踪到了
endtime
专栏;如果我删除了这个
LEAD
列,它会工作吗

不知道我错过了什么

谢谢你,迈克

IF OBJECT_ID('tempdb.dbo.#flextx', 'U') IS NOT NULL
     DROP TABLE #flextx; 

 CREATE TABLE dbo.#flextx
 (
     OmanId VARCHAR(255),
     MRDF VARCHAR(255), 
     status VARCHAR(255), 
     statusid BIGINT, 
     EVENT_ACTION BIGINT,
     starttime DATETIME,
     endtime DATETIME
 ) 

INSERT INTO dbo.#flextx
    SELECT 
        f.OmanId, 
        f.MRDF, 
        s.status, 
        s.statusid, 
        f.EVENT_ACTION, 
        (f.TIMESTAMP) AS starttime,
        (LEAD(f.TIMESTAMP, 1, GETDATE()) OVER (ORDER BY f.TIMESTAMP)) AS endtime 
    FROM  
        dbo.#flext f 
    LEFT JOIN  
        dbo.statues AS s ON s.flexstatus = f.JOB_STATUS_TEXT
    WHERE 
        EVENT_ACTION IN (225, 226)  
        AND s.statusid = 23 
    ORDER BY 
        MRDF, EVENT_ACTION 

您有一个输入错误,我想您希望endtime成为下一个开始时间,如下所示:

     (f.starttime) AS starttime,
      ( LEAD(f.starttime,1,GetDate()) OVER (ORDER BY mrdf, event_action) ) AS endtime 

没有时间戳列

这是编译时错误。在
createtable
语句之后添加一个
GO

发生的事情是您正在重新定义表。编译脚本时使用旧定义。您还应该能够通过删除表的现有版本来修复此问题