我有一个问题:在像SELECT * FROM table
SqlDateTime 这样的简单选择中,随机返回溢出错误(在返回该错误后几次它工作正常;之后它再次工作几次,然后再次返回该错误) - 错误发生在同一行(同时使用相同的连接) - 如果我打开和关闭 MGMT Studio,不同的行会发生错误。
确切的错误信息是:
执行批处理时发生错误。错误消息是:SqlDateTime 溢出。必须介于 1753 年 1 月 1 日上午 12:00:00 和 9999 年 12 月 31 日晚上 11:59:59 之间。
表有 3 个 DateTime 列:
- DTcolumn1 - 可以为空,没有默认值
- DTcolumn2 - 不能为空,默认值 ('1800-01-01')
- DTcolumn3 - 可以为空,没有默认值
所有 3 个 DateTime 列中的值看起来都很好(null 或在允许的间隔内)。
表中还有一些其他列的 varchar 和其他类型。如果我按这 3 个 DateTime 列之一添加顺序(经过经验测试),则选择查询更有可能失败。
数据库的排序规则是Slovenian_CI_AI
.
是什么导致了这个错误(正如我所说 - DateTime 值似乎没问题)?
先感谢您!
编辑 1 (2016-05-09):我之前忘了提及:SQL MGMT Studio 和代码中发生错误(使用 LINQ to SQL)。
编辑2(2016-05-10):似乎存在不同的问题-在每张表上都有超过10000条记录,它会引发一些愚蠢的错误。在其他一些桌子上它抛出:
执行批处理时出错。错误消息是:内部连接致命错误。`
它还会断开我与数据库的连接(在底部状态行中显示为disconnected)。SQL 服务器安装在本地网络内的远程服务器上。