Sql server 尝试插入临时文件时出现T-SQL错误
我试图从select语句填充一个临时表 但是我得到了这个错误: 提供的值的列名或数目与表定义不匹配 我已经使用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
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
发生的事情是您正在重新定义表。编译脚本时使用旧定义。您还应该能够通过删除表的现有版本来修复此问题