我已经在MSDN论坛和这里读到了这个,我还不清楚.我认为这是正确的:Varchar(max)将存储为文本数据类型,因此存在缺陷.因此,假设您的字段可靠地低于8000个字符.像我的数据库表中的BusinessName字段.实际上,商业名称可能总是在(从我的帽子里拿出一个数字)500个字符.看起来我运行的大量varchar字段远低于8k字符数.
那么我应该将该字段设为varchar(500)而不是varchar(8000)吗?根据我对SQL的理解,这两者之间没有区别.因此,为了简化生活,我想将所有varchar字段定义为varchar(8000).这有什么缺点吗?
相关:varchar列的大小(我不觉得这个回答了我的问题).
每当我创建一个表时,我想知道是否有任何性能差异我是否说nvarchar (100)或nvarchar (1000)假设实际字符串大小将小于100.那有吗?
字符串或二进制数据将被截断.linq异常,无法找到哪个字段超过了最大长度.
我有大约350个领域.我检查每个与数据库中的字段最大长度每一个文本框最大长度,一切似乎是正确的,但我仍然得到异常.
请帮忙
作为来自外部源的批量数据加载的一部分,分阶段表定义为varchar(max)列.我们的想法是,每个列都能够保存它在源CSV文件中找到的任何内容,并且我们稍后将验证数据(类型,大小,精确度等).
但是我担心varchar(max)列对于少于200个字符的列有很多开销.设计这个的人确保我这是ETL的最佳实践,但我想我会在社区中验证这个断言.
我继承了一个asp.net网站项目,该项目目前运行SQL Server 2000作为其后端.
我一直在使用SQL Server 2005 Express对数据库的本地副本进行一些数据库更改.我用varchar(max)列创建了一个表.它们用于存储任意长度的XHTML片段.
在浏览stackoverflow时,我遇到了这样的问题: 总是使用nvarchar(MAX)有什么缺点吗?
用户mattruma说他发现了varchar(max)在SQL Server 2000上使用的"困难方式" .
我应该使用什么而不是varchar(max)假设实时数据库在SQL Server 2000上运行?
在此先感谢您的帮助!
新的.net程序员在这里.作为一名新的程序员,我总是尽力遵循工作时的最佳实践.今天我开始使用SQL Server,并询问同事应该将哪种数据类型用于用户描述列.他告诉我使用nvarchar(MAX),我做了,效果很好.
但是,我们应该总是使用nvarchar(max)这种情况吗?还是分配500个字符更好?
我问,因为我google了一点点,我看到人们说这nvarchar(max)为列保留了大量内存,这最终可能会降低数据库的性能.
编辑:很棒的答案家伙,我现在清楚这个话题.没有unicode的东西,所以我要去varchar(600)
我正在处理一些将导入长字符串的 SQL Server 2012 表。根据我的研究,我应该使用nvarchar(). 然而,有很多关于如果使用可能会出现严重性能问题的讨论nvarchar(max),例如在始终使用 nvarchar(MAX) 是否有任何缺点?。我还看到该类型的实际最大字符数nvarchar(max)是 4000。
听起来像是明确设置长度,即使该长度等于或接近最大值(也许 3999?)也可能避免最严重的问题。但这对我来说没有意义;显式设置一个值不应该得到与隐式设置相同值相同的结果吗?
那么到底是哪一种情况呢?实际上与nvarchar(4000)相同nvarchar(max),还是两者之间存在真正的区别?
编辑:评论中引用的问题回答了指定长度与设置为最大值的一般问题。但如果设置为 4000 会发生什么?max 实际上允许超过 4000 个字符吗?如果不是,为什么不总是设置为 4000 而不是 max?
为什么每个RDBMS都坚持要告诉它文本字段的最大长度是什么...为什么它不能只是将这些信息从放入数据库的数据中推断出来?
我主要使用MS SQL Server,但我知道的每个其他数据库也要求您在数据模式上设置这些任意限制.实际情况是,由于业务需求一直在变化,而且几乎每天都有一些最终用户试图将大量文本放入该列,因此这并不是特别有用或友好的.
是否有任何具有RDBMS内部工作知识的人知道为什么我们只是不推断存储数据的限制?我不是在猜测类型信息,而是猜测特定文本列的限制.
我的意思是,我没有在数据库中的每个文本列上使用nvarchar(max).
我从不同的论坛上读到过关于始终使用 nvarchar(MAX)和varchar(max) vs varchar(255)是否有任何缺点。现在,我想知道将数据类型转换为 是否是理想/安全的做法?有性能差异吗?或者我是否需要指定尺寸(如)而不是?textnvarchar(MAX)nvarchar(255)nvarchar(max)
例如,nvarchar(max)的性能是否比nvarchar(100)低?