我正在尝试将一个datetime('2013-08-30 19:05:00')
值插入到 SQL Server 数据库表列(smalldatetime)中,插入后该值保持“NULL”。
我正在对其他 6 个完全相同类型的列执行此操作。这仅发生在一列上是什么?我已经三重检查了列的名称是否正确。有任何想法吗?
我正在尝试将一个datetime('2013-08-30 19:05:00')
值插入到 SQL Server 数据库表列(smalldatetime)中,插入后该值保持“NULL”。
我正在对其他 6 个完全相同类型的列执行此操作。这仅发生在一列上是什么?我已经三重检查了列的名称是否正确。有任何想法吗?
假设情况如你所描述
CREATE TABLE T
(
S SMALLDATETIME NULL
)
INSERT INTO T
VALUES('2013-08-30 19:05:00')
SELECT *
FROM T /*Returns NULL*/
我能想到的只有两种方法可以发生这种情况。
1) 这是一种模棱两可的日期时间格式。在错误的会话选项下,这将无法正确转换,如果您有一些其他选项OFF
,它将返回NULL
而不是引发错误(例如)
SET LANGUAGE Italian;
SET ansi_warnings OFF;
SET arithabort OFF;
INSERT INTO T
VALUES('2013-08-30 19:05:00')
SELECT *
FROM T /*NULL inserted*/
2)您可能错过了INSTEAD OF
触发器中的列,或者有一个AFTER
实际上将值设置回的触发器NULL
。