尝试删除时,无法在timestamp列中插入显式值

时间:2018-03-13 16:20:39

标签: sql sql-server tsql

我收到了错误

  

"无法在时间戳列中插入显式值。将INSERT与列列表一起使用以排除时间戳列,或将DEFAULT插入时间戳列。"

代码:

SELECT TOP(0) * 
INTO #TEMP_TABLE 
FROM ACTUAL_TABLE;

DELETE A  
FROM ACTUAL_TABLE A
INNER JOIN ACTUAL_TABLE_2 B ON A.ID = B.ID AND A.SECOND_ID = B.SECOND_ID

我想从实际表中删除所有内容,但它一直在抛出此错误

ACTUAL_TABLE_2只有身份证和次要身份证,但我认为这不应该......但也许需要约会?我不知道我为什么会抛出这个错误感到困惑。 ACTUAL_TABLE确实有时间戳列,但我只想删除它们。

1 个答案:

答案 0 :(得分:2)

您必须排除时间戳字段,因为它们无法插入。为此,您必须手动选择所有其他列。语法:

DELETE A
OUTPUT DELETED.col1, DELETED.col2, etc INTO #TEMPTABLE (col1, col2, etc)
FROM ACTUAL_TABLE A
INNER JOIN ACTUAL_TABLE_2 B ON A.ID = B.ID AND A.SECOND_ID = B.SECOND_ID