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

时间:2011-12-07 15:05:13

标签: sql-server casting varbinary visual-foxpro

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

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

存储这些值的最佳列数据类型最好不需要CAST吗?

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

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

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

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