Sql server 2008 Msg 213,16级,状态1,第1行

Sql server 2008 Msg 213,16级,状态1,第1行,sql-server-2008,Sql Server 2008,在#InsertedArEmailAndStatus中有3列。 在#UpdatedEmailAndStatus中有4列,但在AuditRecord中,我插入了5列,那么在哪里添加第5列呢?无论是在#insertedemailandstatus中还是在#updateedemailandstatus中,可能?您的实际问题是您没有向#insertedemailandstatus传递足够的值(用要存储在EmailAndStatus表中的列替换col2、col3) 要么在OUTPUT子句的目标表中只指定一

#InsertedArEmailAndStatus
中有3列。
#UpdatedEmailAndStatus
中有4列,但在
AuditRecord
中,我插入了5列,那么在哪里添加第5列呢?无论是在
#insertedemailandstatus
中还是在
#updateedemailandstatus
中,可能?

您的实际问题是您没有向
#insertedemailandstatus
传递足够的值(用要存储在EmailAndStatus表中的列替换col2、col3)


要么在OUTPUT子句的目标表中只指定一列,要么输出三列数据。另外,对于那些在家玩的人,我认为MSG 213的列数不正确。我尝试输出三列,但仍然是相同的错误,或者,
OUTPUT inserted.AuditRecordId插入#insertedemailandStatus(OneColumnName)
INSERT INTO AuditRecord 
    (AuditActionId
    ,EntityName
    ,EntityKey
    ,CreateUser
    ,CreateDate)
OUTPUT inserted.AuditRecordId INTO #InsertedArEmailAndStatus 
SELECT 
    2 /* update */
    ,'CustomerContact'
    ,ContactId
    ,CURRENT_USER
    ,CURRENT_TIMESTAMP
FROM #UpdatedEmailAndStatus
INSERT INTO AuditRecord 
    (AuditActionId
    ,EntityName
    ,EntityKey
    ,CreateUser
    ,CreateDate)
OUTPUT inserted.AuditRecordId, Inserted.Col2, Inserted.col3 
INTO #InsertedArEmailAndStatus 
SELECT 
    2 /* update */
    ,'CustomerContact'
    ,ContactId
    ,CURRENT_USER
    ,CURRENT_TIMESTAMP
FROM #UpdatedEmailAndStatus