首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSAccess: SELECT INTO NewTable裁剪长文本

MSAccess: SELECT INTO NewTable裁剪长文本
EN

Stack Overflow用户
提问于 2008-12-17 07:27:01
回答 3查看 4.7K关注 0票数 2

当我使用(在MS Access 2003 SP3中)时:

代码语言:javascript
复制
SELECT * INTO NewTable FROM SomeQuery;

备注字段被转换为文本字段(限制为255个字符),因此较长的文本将被剪切。

查询本身的输出是好的,并且没有被截断;文本只在创建的新表中被剪切。

更新:我设法将问题集中在查询中的IIF语句上。当我删除IIF时,新表格包含备注字段,但是使用IIF时,相同的字段显示为文本。奇怪的是,查询输出显示完整的长字符串,即使在使用IIF时也是如此。只有当它被‘复制’到新的表中时(通过INTO语句),文本才会被剪切。

您知道IIF可能会给备注字段带来什么问题吗?

感谢您的回答。

EN

回答 3

Stack Overflow用户

发布于 2008-12-17 07:33:14

这里有避免对Memo字段进行任何截断的current workarounds

在您的例子中,这可能是因为查询的属性表单将"set Unique“值包含为Yes (强制比较备注字段,触发截断),或者字段的Format属性,例如强制以大写(>)或小写(<)显示。

您使用的是什么Access,您要将文档保存为什么格式?

在与Access 2000兼容的格式中,单元格采用Excel5.0/95 format格式:最多255个字符。

您是否有其他(非Memo)字段可以尝试选择较长的值,看看它是否也会被截断?

如果输出是正常的,但是新表中的导出确实截断了Memo字段,您可以检查以下内容:

In the export dialog under advanced,即使看起来只能包含名称,但如果您非常小心地单击以展开没有出现的列,则可以将数据类型更改为memo。

票数 3
EN

Stack Overflow用户

发布于 2008-12-19 02:23:41

我刚刚使用一个make表和一个memo字段在A2K3中进行了测试。我毫不费力地让它将完整数据追加到备注字段中。

也许您可以发布用于填充表的查询的SQL。如果你对备注字段进行排序(或分组),就可以做到这一点,因为对备注字段的排序应该将它们截断到255个字符(尽管在我刚刚使用所有最新的post-SP3补丁在A2K3 SP3上运行的测试中,仅仅排序并不会截断,而是分组依据)。

另一个问题是,在生产应用程序中使用Make Table查询通常是不可取的。任何重复发生的事情都应该附加到一个预定义的表中,而不是替换现有的表。首先,预定义的表可以在其上定义索引,这使得它在填充之后的使用效率更高。当然,在添加新数据之前,您必须删除现有记录,但在索引方面的好处是相当大的。是的,您可以在每次运行Make table查询时重新定义索引,但是,如果删除现有数据太麻烦,那么向新创建的表添加索引不是更麻烦吗?

我很少使用Make Table查询,除非我为了其他目的操作数据。目标表中的数据类型并不总是可以预测的,因为它在一定程度上依赖于源表中的数据。这本身就使得在大多数情况下使用它们是不可取的。

票数 1
EN

Stack Overflow用户

发布于 2008-12-17 11:06:44

2003年的SP3是臭名昭著的,这可能与此有关。有一个热修复程序:

http://support.microsoft.com/default.aspx/kb/945674

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/373888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档