【问题标题】:How to define the type (int) for a new field in SQL SELECT INTO statement in MS Access如何在 MS Access 的 SQL SELECT INTO 语句中定义新字段的类型 (int)
【发布时间】:2013-12-01 08:01:26
【问题描述】:

我想将 select into 语句中的新字段定义为整数。但是,NewField 最终以二进制形式出现。我怎样才能做到这一点?

SELECT ExistingField1, ExistingField2, NewField
INTO NewTable
FROM ExistingTable

我搜索了很多,但还没有找到解决方案。

编辑 1:我正在 Microsoft Access 应用程序本身中执行 SELECT INTO 语句。 (不是Access中的表指向SQL Server表)

编辑 2:NewField 是使用 SELECT INTO 语句创建的。它不存在于预先存在的表中。

【问题讨论】:

  • 这个问题目前被标记为“sql-server”和“ms-access”。您是否从 Microsoft Access 应用程序本身执行 SELECT INTO 语句? [ExistingTable] 是 Access 中指向 SQL Server 表的链接表吗? NewField 来自哪里?请编辑您的问题以添加这些详细信息。
  • 我编辑了我的问题以解决您提出的问题

标签: sql ms-access select-into


【解决方案1】:

对于 Access,我会使用它,然后参数对话框不会显示。

SELECT ExistingField1, cInt(0) AS NewField
into NewTable1
FROM Table1

对于 SQL Server

CAST(null AS int) AS NewField

【讨论】:

    【解决方案2】:

    它最终成为二进制的原因是因为现有表中的字段很可能是二进制字段。

    你可以尝试做这样的事情:

    SELECT ExistingField1, ExistingField2, CAST(NewField AS int)
    INTO NewTable
    FROM ExistingTable
    

    CAST 在 MsAccess 中不起作用。但是,这应该有效:

    SELECT ExistingField1, ExistingField2, cInt(Field1 + Field2) AS NewField
    INTO NewTable
    FROM ExistingTable
    

    【讨论】:

    • 感谢您的帮助。但是,我收到了一个错误:“查询表达式'CAST(NewField AS int)'中的语法错误(缺少运算符)。”此外,NewField 不是现有字段。它是使用 SELECT INTO 语句和 NewTable 创建的。我是否错过了一些非常基本的东西?
    • 新字段仍然是您对现有列执行的某种操作的结果,对吧?我刚刚用 Google 搜索,发现 CAST 在 Access 中不起作用。查看我的编辑。
    【解决方案3】:

    如果您已经定义了 NewTable 的结构,您可以尝试:

    Insert Into NewTable 
    Select 
          ExistingField1,
          ExistingField2,
          cast(NewField as int) as NewField,
    From ExistingTable
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-05
      • 2014-02-07
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多