什么可能导致“将char数据类型转换为日期时间数据类型导致超出范围”?

时间:2009-07-08 20:20:38

标签: sql-server datetime numeric

我遇到了一个错误,我无法搞清楚。

我有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,Level 16,State 3,Procedure TRG_MyTable,Line 6 将char数据类型转换为datetime数据类型会导致超出范围的datetime值。

如果我注释掉查询的Field01部分,它运行正常。数字字段如何抛出日期时间错误?

1 个答案:

答案 0 :(得分:1)

在我看来,你在目标表上有某种触发器正在触发(TRG_MyTable是赠品)它可能正在做一些事情,比如在某个地方将一个带时间戳的记录插入到审计表中并且让人感到困惑。