【发布时间】:2011-09-06 17:50:40
【问题描述】:
我有一个从导入/导出向导自动生成的创建表 SQL 语句。但是,我创建的表有太多行,因此我只想在某个日期之后导入。
我有以下几点:
CREATE TABLE [DB1].[dbo].[Agent] (
[UserId] nvarchar(50) NOT NULL,
[StatusDateTime] datetime NOT NULL,
[StatusDateTimeGMT] datetime NOT NULL,
) where StatusDateTimeGMT >='2011-08-15'
当我尝试添加 StatusDateTimeGMT 字段为 >='2011-08-15' 的 where 子句时,会引发错误。我也尝试使用 CHECK 约束,但没有成功。有什么想法吗?
这是错误:
错误 0xc002f210:准备 SQL 任务:执行查询
“创建表 [db1].[dbo].[Agent] (
[用户 ID] nvarchar(50) 非空,
[StatusDateTime] 日期时间不为空,
[StatusDateTimeGMT] 日期时间不为空,
)其中StatusDateTimeGMT >='20110815'" 失败并出现以下错误:“来自 HRESULT 的异常: 0x80040E14"。可能的失败原因:查询有问题, “ResultSet”属性设置不正确,参数设置不正确, 或未正确建立连接。
【问题讨论】:
-
您是否尝试过不使用破折号,例如>= '20110815'?
-
刚试过,没用。
-
可能包含 实际 错误消息,而不仅仅是“错误”和显示您尝试添加此 where 子句的位置的屏幕截图。
-
您不能只是在
create table之后添加“where StatusDateTimeGMT >='20110815'”并期望它能够正常工作!也许使用您想要的过滤器创建一个视图,然后从中导出。 -
表创建和数据导入是两个独立的任务。
标签: sql sql-server-2005