2013-05-07 84 views
1
INSERT INTO AuditRecord 
    (AuditActionId 
    ,EntityName 
    ,EntityKey 
    ,CreateUser 
    ,CreateDate) 
OUTPUT inserted.AuditRecordId INTO #InsertedArEmailAndStatus 
SELECT 
    2 /* update */ 
    ,'CustomerContact' 
    ,ContactId 
    ,CURRENT_USER 
    ,CURRENT_TIMESTAMP 
FROM #UpdatedEmailAndStatus 

in #InsertedArEmailAndStatus There are 3 columns。 在#UpdatedEmailAndStatus有4列,但在AuditRecord我插入5列,所以我在哪里添加第5列?或者在#InsertedArEmailAndStatus#UpdatedEmailAndStatus也许?Msg 213,Level 16,State 1,Line 1

+0

无论名称只有一个目标表列的OUTPUT子句或OUTPUT三列值的数据。 – 2013-05-07 21:04:24

+0

另外,对于那些在家玩的人,我相信MSG 213的列数是不正确的。 – 2013-05-07 21:05:10

+0

我试着输出3列,它仍然是相同的错误 – user2359961 2013-05-07 21:11:21

回答

2

您的实际问题是,你不能传递足够的值#InsertedArEmailAndStatus试试这个(更换COL2,COL3与要在EmailAndStatus表来存储列)

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 
+3

或者,OUTPUT inserted.AuditRecordId INTO #InsertedArEmailAndStatus(OneColumnName) – 2013-05-07 22:01:17

相关问题