当前位置: 首页 > 面试题库 >

nvarchar(50)与nvarchar(max)的含义

邹慈
2023-03-14
问题内容

如果下面两个表的唯一区别是nvarchar(50)vs,nvarchar(max)并且每个字段中的字符串范围是1到50个字符,那么它们在存储和性能方面的一般区别是什么?这是在SQL
Server 2005中。

表格1

firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)

表2

firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)

问题答案:

如果保证字符串长度在1到50个字符之间,则使用varchar(X)与varchar(MAX)可以在最大长度为X的字符串上运行相同的查询。此外,您不能在varchar(MAX)字段上创建索引。

一旦您的行的长度值超过8000个字符,就需要解决其他性能问题(这些行基本上被视为TEXT而不是varchar(n))。尽管作为比较,这并不十分相关,因为对于长度超过8000的字符串,没有varchar(N)选项。



 类似资料:
  • 问题内容: 在为应用程序构建架构时遇到一个问题。 何时使用和。我的意思是应该使用它的确切用例。我也曾在网上冲浪,但我能够得到确切的答案。 任何人都可以提出一些确切的用例。 问题答案: 这是针对Microsoft SQL Server的 : 是 Unicode- 每个字符2个字节,因此最大。10亿个字符;可以处理东亚语,阿拉伯语,希伯来语,西里尔字母等字符。 就是 非Unicode -每个字符1个字

  • 问题内容: 我存储的名字和姓氏各不超过30个字符。哪个更好还是。 我已阅读,尽可能多的空间两倍占用比和用于国际化。 那么您建议我使用什么:或? 还请让我知道两者的性能。两者的性能相同还是不同?因为空间不是太大的问题。问题是表现。 问题答案: 基本上,nvarchar意味着您可以处理很多字母,而不仅仅是普通英语。从技术上讲,它意味着支持unicode,而不仅仅是ANSI。这意味着全角字符或大约是空格

  • 问题内容: 我的SQL-2005数据库中有一列曾经是 varchar(max) ,但已更改为 nvarchar(max) 。 现在,我需要更新我的hibernate映射文件以反映更改,这就是它过去的样子: 当我尝试运行该应用程序时,出现以下错误: org.hibernate.HibernateException:[表]中列值的列类型错误。找到:ntext,预期:文本 我应该在’type’属性中添加

  • 问题内容: 如果选择nvarchar(MAX),我不知道字符数是否有限制,而且我不确定无论如何我需要多少个字符。 在这里使用什么标准数据类型?我正在使用SQL Server 2008 R2 问题答案: 不推荐使用该类型,与和一样。微软建议使用替换它们,并分别。 因此使用。 参考: ntext,文本和图像(Transact-SQL)

  • 输入/输出示例: infoData序列化输入:总长度5191 当,NVARCHAR(1000),infoData值:总长度-1003 帮助我获得完整的info_Data原样,没有任何丢失或截断。 提前道谢。

  • 问题内容: 所有,我都有一个大型(不可避免的)动态SQL查询。由于选择标准中字段的数量,包含动态SQL的字符串的长度超过4000个字符。现在,我知道为设置了最大4000 ,但是在Server Profiler中查看了已执行的SQL语句 似乎可以正常工作(!?),对于另一个也很大的查询,它抛出与此4000极限(!?)相关的错误,它基本上会在此4000极限之后修剪所有SQL,并给我留下语法错误。尽管在