2009-07-08 63 views
0

我遇到了一个错误,我很难搞清楚。可能导致什么“将char数据类型转换为日期时间数据类型导致超出范围”?

我有2个表,我想将数据从一个复制到其他(简化视图):

MyTable 
------- 
ID varchar(11) do not allow nulls 
Field01 numeric(6,0) allow nulls 

MyTable_Temp 
------------ 
ID varchar(11) do not allow nulls 
Field01 numeric(6,0) allow nulls 

我的查询看起来是这样的:

DELETE FROM dbo.MyTable 
INSERT INTO dbo.MyTable([ID],[Field01]) 
SELECT ID, Field01 FROM [dbo].MyTable_Temp WITH (NOLOCK) 

然而,当我运行我的查询它会引发此错误:

Msg 242,级别16,状态3,过程TRG_MyTable,行6 char数据类型转换为日期时间数据类型导致out-o f范围日期时间值。

如果我注释掉查询的Field01部分,它运行良好。数字字段如何引发日期时间错误?

+1

愚蠢的问题:你确定MyTable.Field01不是DATETIME? – n8wrl 2009-07-08 20:27:36

+0

是的,我很确定。现在我正在按照下面的答案中的建议查看TRG_MyTable,但在我的数据库中看不到任何触发器.... – dtc 2009-07-08 20:38:33

回答

1

它看起来像我在目标表上触发了某种触发器(TRG_MyTable是一个赠品)它可能会做一些事情,比如将时间戳记录插入某个审计表中,并且感到困惑。

相关问题