0

我遇到了一个我无法弄清楚的错误。

我有 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)

但是,当我运行查询时,它会引发此错误:

消息 242,级别 16,状态 3,过程 TRG_MyTable,第 6 行 将 char 数据类型转换为 datetime 数据类型导致超出范围的 datetime 值。

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

4

1 回答 1

1

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

于 2009-07-08T20:30:39.677 回答