我已经在MSDN论坛上对此进行了阅读,但我仍然不清楚。我认为这是正确的:Varchar(max)将存储为文本数据类型,因此存在缺点。因此,可以说您的字段可靠地在8000个字符以内。就像我的数据库表中的BusinessName字段一样。实际上,一个公司名称可能总是少于500个字符(将数字拉出帽子)。在8k字符数以下,我遇到的许多varchar字段似乎都很好。
那么我应该将该字段设置为varchar(500)而不是varchar(8000)吗?据我对SQL的了解,两者之间没有区别。因此,为了使生活更轻松,我想将所有varchar字段都定义为varchar(8000)。那有什么缺点吗?
从处理的角度来看,使用varchar(8000)与varchar(500)不会有什么区别。定义字段应保留的最大长度并将varchar设置为该长度,这更像是一种“最佳实践”。它可以用来协助数据验证。例如,将州名缩写设置为2个字符,或将邮政编码输入5个或9个字符。当您的数据与其他系统或用户界面(其中字段长度至关重要)(例如大型机平面文件数据集)进行交互时,这曾经是一个更为重要的区别,但是如今,我认为它比其他任何东西都更为习惯。
问题内容: 关于SQL Server,我了解: 表示内存是延迟分配的,这意味着它完全适合(插入时)数据。 表示没有大小限制\限制。 那么,在使用时,是否总是最好使用,因为我们无论如何都不会分配整个大小? 我们是否应该仅在要在此数据库列上强制执行约束的情况下才使用恒定大小? 问题答案: SO用户@Remus Rusanu在此主题上有一篇很好的文章。这是我窃取的摘要,但我建议您阅读全文: 处理MAX类
问题内容: 是否可以将SQL Server 2008数据库中的列类型从更改为,而不必删除表并重新创建? 每当我尝试使用SQL Server Management Studio进行操作时,SQL Server Management Studio都会向我抛出一个错误-但是让我头疼的是,很高兴知道我是否可以更改类型而不必删除和创建。 谢谢 问题答案: 您应该能够使用TSQL做到这一点。 就像是
问题内容: 不久前,我问了一个有关SQL Server中的层次结构/版本号排序的问题。( 如何使用SQL Server查询一般地对“版本号”列进行排序 )。 在提交的答案中,有一个与TSQL编码挑战的链接与此相似。 在SQL2000解决方案中,作者演示了两种变体,一种使用并返回varchar,另一种使用varbinary。作者解释说他正在这样做,而没有解释为什么。 因此,我的问题是,方法上的主要区
问题内容: 我存储的名字和姓氏各不超过30个字符。哪个更好还是。 我已阅读,尽可能多的空间两倍占用比和用于国际化。 那么您建议我使用什么:或? 还请让我知道两者的性能。两者的性能相同还是不同?因为空间不是太大的问题。问题是表现。 问题答案: 基本上,nvarchar意味着您可以处理很多字母,而不仅仅是普通英语。从技术上讲,它意味着支持unicode,而不仅仅是ANSI。这意味着全角字符或大约是空格
问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能的重复: 对所有基于文本的字段使用通用varchar(255)有不利之处吗? 在MYSQL中,您可以为VARCHAR字段类型选择一个长度。可能的值为1-255。 但是,如果使用最大值而不是VARCHAR(20)的VARCHAR(255),它的优点是什么?据我所知,条目的大小仅取决于插入字符串的实际长度。 大小(字节)=长度+1 因此,如
我使用并有一个MySql db表,该表是用以下方式创建的: