带有过滤器的SQL create table

时间:2011-09-06 17:50:41

标签: sql sql-server-2005

我有一个来自导入/导出向导的自动生成的创建表SQL语句。但是,我创建的表有太多行,因此我只想在某个日期之后导入。

我有以下内容:

CREATE TABLE [DB1].[dbo].[Agent] (
[UserId] nvarchar(50) NOT NULL,
[StatusDateTime] datetime NOT NULL,
[StatusDateTimeGMT] datetime NOT NULL,
) where StatusDateTimeGMT >='2011-08-15'

当我尝试添加where StatusDateTimeGMT字段为> ='2011-08-15'的where子句时,它会抛出一个错误。我也尝试过使用CHECK约束,但没有成功。有什么想法吗?

这是错误:

  

错误0xc002f210:准备SQL任务:执行查询
  “CREATE TABLE [db1]。[dbo]。[Agent](
      [UserId] nvarchar(50)NOT NULL,
      [StatusDateTime] datetime NOT NULL,
      [StatusDateTimeGMT] datetime NOT NULL,
      )其中StatusDateTimeGMT> ='20110815'“   失败并出现以下错误:“HRESULT异常:   0x80040E14“。可能的失败原因:查询问题,   “ResultSet”属性设置不正确,参数设置不正确,   或连接未正确建立。

1 个答案:

答案 0 :(得分:1)

我不知道是否理解了这个问题,但是如果要加载与某个参数匹配的数据,首先要创建表,然后使用类似如下的命令插入所需的数据。 / p>

INSERT INTO [BD1].[dbo].[Agent]
SELECT [UserId], [StatusDateTime], [StatusDateTimeGMT] 
FROM [sourceData]
WHERE StatusDateTimeGMT >='2011-08-15'

仅作为一个例子。