在 SQL Server 中存储混合数据的最佳列类型是什么

发布于 2024-12-20 04:12:49 字数 252 浏览 1 评论 0原文

我们正在进行 Visual Foxpro (DBF) 到 SQL Server 的转换,但将保留 VFP GUI 以现在使用 SQL Server 数据库。

在 VFP 的几个备注字段中,我们混合存储 ASCII 字符和文本。

在无需 CAST 的情况下存储这些值的最佳列数据类型是什么?

同样,我们有时也会将 Word 文档转换为 Memo 文件,对于这些情况,SQL Server 中哪种字段类型效果最好?

感谢您的帮助。

We are doing a Visual Foxpro (DBF) to SQL Server conversion, but will retain the VFP GUI to now use the SQL Server database.

In several memo fields in VFP, we store a mix of ASCII characters and text.

What would be the best column datatype to store these values preferably without having to CAST?

Along these same lines, we also have times when we convert Word documents into a Memo file, for these, which field type in SQL Server would work the best?

Thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

心作怪 2024-12-27 04:12:49

这取决于您使用的 SQL Server 版本。 2005 及更新版本支持 VARCHAR(MAX),最大可存储 2GB 的字符串。短字符串可以有效存储(在行中),而较大的字符串会自动存储在 blob 数据库区域中,并且仅指向存储在行中的 blob 的指针。从开发人员的角度来看,如果您的数据可以超过 8000 个字符,则无需担心这种复杂性,可以使用 VARCHAR(MAX)。

至于您的 Word 文件,这取决于您是否要将实际文件(二进制格式)存储在数据库中或仅存储内容。在第一种情况下,您可以使用 VARBINARY(MAX) (或将文件存储在磁盘上,并且仅将路径和其他文件元数据存储在 SQL Server 中)。如果要存储实际内容,则需要首先转换为某种合适的格式(富文本、XML 等),然后将其存储在 VARCHAR(MAX) 中。

注意:如果您的数据包含 unicode 字符(而不仅仅是 ASCII),请使用 NVARCHAR 而不是 VARCHAR

It depends on the version of SQL Server you are using. 2005 and newer support VARCHAR(MAX), which can store strings up to 2GB. Short strings are stored efficiently (in the row) while larger strings are automatically stored in a blob database area, with only a pointer to the blob stored in the row. From a developer's perspective you don't need to worry about this complexity and use VARCHAR(MAX) if your data can exceed 8000 characters.

As for your Word files, it depends if you want to store the actual file (in binary format) in the database or only the content. In the first case you could use VARBINARY(MAX) (or store the file on disk and only the path and other file meta data in SQL Server). If you want to store the actual content you will need to first convert to some suitable format (Rich Text, XML, etc.) and then store that in VARCHAR(MAX).

NOTE: use NVARCHAR instead of VARCHAR if your data contains unicode characters (rather than just ASCII)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文