我正在使用 SQL Server 2005,并且我有一列需要存储大量文本(有时超过 8000 个字符,即 varchar 限制)。使用“文本”数据类型有缺点吗?我还阅读了有关使用 varchar(MAX) 的信息——如果我存储在其中的大部分数据少于 8000 个字符,那会更好,但我需要能够支持更多?
我正在使用 SQL Server 2005,并且我有一列需要存储大量文本(有时超过 8000 个字符,即 varchar 限制)。使用“文本”数据类型有缺点吗?我还阅读了有关使用 varchar(MAX) 的信息——如果我存储在其中的大部分数据少于 8000 个字符,那会更好,但我需要能够支持更多?
只要您有超过 8000 字节的数据潜力,您就应该始终选择 2005 年的新 LOB 类型,而不是旧类型(text、ntext、image)。
新类型适用于大多数内部字符串操作函数,而旧类型则不适用。它们以完全相同的方式存储在数据库中,但也有一些小的调整来读取新类型的算法。
不过有一些事情需要注意:
我在http://www.sqlskills.com/BLOGS/PAUL/post/Importance-of-choosing-the-right-LOB-storage-technique.aspx上发布了一篇博文,更详细地讨论了这一点。
希望这可以帮助
使用 varchar(max),这是推荐的方法,因此它可以为您节省升级问题,并且使用文本数据类型也更容易。
使用 varchar(MAX)。varchar(MAX) 的限制为 2GB。
如果内容小于 8,000 字节,它将被内联存储。但是,如果内容大于 8,000 字节,它会像文本字段一样存储在 LOB 中。
此外,TEXT、NTEXT 和 IMAGE 数据类型将在未来的某个时候被弃用。
参考
MVP Simon Sabin 在他的博客上发表了一些不错的博客文章。搜索 Simon Sabin varchar(max)
我同意 Paul 的观点,尽可能使用 varchar(max)。
varchar(最大值)
文本