我正在使用SQL Server 2005,我有一个列需要存储大量的文本(有时超过8000个字符,varchar限制)。 使用“文本”数据types有缺点吗? 我还读了关于使用varchar(MAX) – 如果我存储在那里的大多数数据less于8000个字符,那会更好吗,但是我需要能够支持更多?
只要您有超过8000字节的数据的可能性,您应该始终在2005年使用新的LOBtypes,而不是旧types(文本,ntext,图像)。
新types与大多数内部string操作函数一起工作,而传统types则不适用。 它们以同样的方式存储在数据库中,但也有一些小的改动来读取新types的algorithm。
有一些事情要注意,但是:
我发布了一篇博客文章,详细讨论这个问题, url是http://www.sqlskills.com/BLOGS/PAUL/post/Importance-of-choosing-the-right-LOB-storage-technique.aspx 。
希望这可以帮助
使用varchar(max),这是推荐的方法,所以它可以节省你升级的问题,而且使用文本数据types也更容易。
使用varchar(MAX)。 varchar(MAX)的限制是2GB。
如果内容小于8,000字节,它将被内联存储。 但是,如果内容大于8,000字节,则它将像文本字段一样存储在LOB中。
另外,TEXT,NTEXT和IMAGE数据types将在未来某个时候被弃用。
参考
MVP Simon Sabin在博客上发表了一些很好的博客文章。 searchSimon Sabin varchar(max)
我同意保罗,尽可能使用varchar(max)。
VARCHAR(最大值)
文本