我们正在进行 Visual Foxpro (DBF) 到 SQL Server 的转换,但将保留 VFP GUI,以便现在使用 SQL Server 数据库。
在 VFP 的几个备注字段中,我们存储了 ASCII 字符和文本的混合。
最好不用 CAST 来存储这些值的最佳列数据类型是什么?
按照同样的思路,我们也有时将 Word 文档转换为备忘录文件,对于这些,SQL Server 中的哪种字段类型效果最好?
谢谢你的帮助。
我们正在进行 Visual Foxpro (DBF) 到 SQL Server 的转换,但将保留 VFP GUI,以便现在使用 SQL Server 数据库。
在 VFP 的几个备注字段中,我们存储了 ASCII 字符和文本的混合。
最好不用 CAST 来存储这些值的最佳列数据类型是什么?
按照同样的思路,我们也有时将 Word 文档转换为备忘录文件,对于这些,SQL Server 中的哪种字段类型效果最好?
谢谢你的帮助。
这取决于您使用的 SQL Server 版本。2005 和更新的版本支持 VARCHAR(MAX),它可以存储高达 2GB 的字符串。短字符串有效地存储(在行中),而较大的字符串自动存储在 blob 数据库区域中,只有指向存储在行中的 blob 的指针。从开发人员的角度来看,如果您的数据可以超过 8000 个字符,则无需担心这种复杂性并使用 VARCHAR(MAX)。
至于您的 Word 文件,这取决于您是要将实际文件(以二进制格式)存储在数据库中还是仅存储内容。在第一种情况下,您可以使用 VARBINARY(MAX) (或将文件存储在磁盘上,并且仅将路径和其他文件元数据存储在 SQL Server 中)。如果要存储实际内容,您需要先转换为某种合适的格式(富文本、XML 等),然后将其存储在 VARCHAR(MAX) 中。
注意:如果您的数据包含 unicode 字符(而不仅仅是 ASCII),请使用 NVARCHAR 而不是 VARCHAR