标签: nvarchar

varchar和nvarchar有什么区别?

它只nvarchar支持多字节字符吗?如果是这种情况,除了存储问题之外,还有什么意义varchars吗?

sql-server varchar nvarchar

1300
推荐指数
19
解决办法
101万
查看次数

varchar和nvarchar SQL Server数据类型之间的主要性能差异是什么?

我正在我的学校使用一个小型网络应用程序的数据库SQL Server 2005.
我在varcharvs 的问题上看到了几个思想流派nvarchar:

  1. 使用varchar除非你处理了很多国际化的数据,然后使用nvarchar.
  2. 只是nvarchar用于一切.

我开始看到视图2的优点.我知道nvarchar确实占用了两倍的空间,但这不一定是一个大问题,因为这只是为几百名学生存储数据.对我而言,似乎最简单的是不要担心它并且只允许一切使用nvarchar.还是有什么我想念的?

sql-server storage varchar nvarchar sql-server-2005

232
推荐指数
10
解决办法
16万
查看次数

nvarchar(max)vs NText

在SQL Server 中使用nvarchar(max)vs. NText数据类型有哪些优缺点?我不需要向后兼容性,因此nvarchar(max)在较旧的SQL Server版本中不支持它.

编辑:很显然的问题也适用于TEXTIMAGE对比varchar(max),并varbinary(max)为那些寻找那些数据类型之后.

sql-server text nvarchar sql-server-2005 sql-server-2008

178
推荐指数
5
解决办法
13万
查看次数

什么时候必须在SQL Server中使用NVARCHAR/NCHAR而不是VARCHAR/CHAR?

我们必须使用Unicode类型时是否有规则?

我已经看到大多数欧洲语言(德语,意大利语,英语......)在VARCHAR列中的同一数据库中都很好.

我正在寻找类似的东西:

  1. 如果你有中文 - >使用NVARCHAR
  2. 如果你有德语和阿拉伯语 - >使用NVARCHAR

那么服务器/数据库的整理呢?

我不想像这里建议的一样使用NVARCHAR.varchar 和nvarchar SQL Server数据类型之间的主要性能差异是什么?

sql-server unicode nvarchar collation

65
推荐指数
4
解决办法
10万
查看次数

SQL国家字符(NCHAR)数据类型的真正含义是什么?

和,CHAR (CHARACTER)以及VARCHAR (CHARACTER VARYING),SQL提供NCHAR (NATIONAL CHARACTER)NVARCHAR (NATIONAL CHARACTER VARYING)类型.在某些数据库中,这是用于字符(非二进制)字符串的更好的数据类型:

  • 在SQL Server中,NCHAR存储为UTF-16LE,是唯一可靠地存储非ASCII字符的方法,仅CHAR作为单字节代码页;

  • 在Oracle中,NVARCHAR可以存储为UTF-16或UTF-8而不是单字节排序规则;

  • 但在MySQL,NVARCHARVARCHAR,所以它没有什么区别,任一类型的可以存储使用UTF-8或任何其他排序规则.

那么,NATIONAL实际上在概念上意味着什么呢?供应商的文档仅告诉您自己的DBMS使用哪些字符集,而不是实际的基本原理.与此同时,SQL92标准对该功能的解释更为有帮助,仅说明NATIONAL CHARACTER存储在实现定义的字符集中.而不是仅仅CHARACTER存储在实现定义的字符集中.这可能是一个不同的实现定义的字符集.或不.

谢谢,ANSI.Thansi.

是否应该NVARCHAR用于所有字符(非二进制)存储目的?是否有当前流行的DBMS,它会做一些不受欢迎的事情,或者只是不识别关键字(或N''文字)?

sql t-sql sql-server oracle nvarchar

50
推荐指数
2
解决办法
2万
查看次数

VARCHAR像90年代一样吗?

  1. VARCHAR不存储Unicode字符.
  2. NVARCHAR存储Unicode字符.
  3. 今天的应用程序应始终与Unicode兼容.
  4. NVARCHAR需要两倍的空间来存储它.
  5. 第4点无关紧要,因为存储空间非常便宜.

Ergo:今天设计SQL Server数据库时,应始终使用NVARCHAR.

这听起来有道理吗?有没有人不同意任何前提?今天有没有理由在NVARCHAR上选择VARCHAR?

sql-server nvarchar

47
推荐指数
7
解决办法
1万
查看次数

SQL性能:使用NVarchar(MAX)而不是NVarChar(200)是否有任何性能损失

我想知道在定义nvarchar(max)类型的列时是否有任何缺点,而不是给它一个(更小的)最大大小.

我在某处读到,如果列值超过4?KB,剩余数据将被添加到"溢出"区域,这没关系.

我正在创建一个表格,其中大部分时间文本都是几行,但我想知道设置下限是否有任何优势,然后添加验证以避免违反该限制.

使用nvarchar(max)列创建索引是否有任何限制,或者是否需要在大小限制上添加限制?

谢谢!

sql-server indexing performance nvarchar

37
推荐指数
3
解决办法
2万
查看次数

在表中使用VARCHAR(MAX)有缺点吗?

这是我的困境.

基本上,我需要一个表中的列来保持未知长度的字符.但我很好奇,如果在一个列中使用VARCHAR(MAX)或NVARCHAR(MAX)可能会出现Sql Server性能问题,例如:'这次'我只需要存储3个字符,而且大部分时间我只需要存储10个字符.但是在该专栏中可能会有几千个字符,甚至可能是一百万字,这是一个很小的机会,这是不可预测的.但是,我可以保证它不会超过2GB的限制.

我只是好奇是否有任何性能问题,或者可能有更好的方法来解决这个问题.

sql-server varchar nvarchar

30
推荐指数
2
解决办法
2万
查看次数

如何在C#中创建NVarchar(max)Sql参数?

我有以下代码使用存储过程拉回DataTable并输入字符串参数@JobNumbers,这是动态创建的作业编号字符串(因此长度未知):

using (SqlConnection connection = new SqlConnection(con))
        {
            SqlCommand cmd = new SqlCommand("dbo.Mystoredprocedure", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@JobNumbers", SqlDbType.VarChar, 4000);
            cmd.Parameters["@JobNumbers"].Value = JobNumber;

            SqlDataAdapter da = new SqlDataAdapter(cmd);

            connection.Open();
            da.Fill(JobDetails);
        }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我当前将JobNumber参数设置为4000的长度,这应该足以承担大约500个作业号并且应该足够了.但是,有可能在奇怪的场合需要更多.所以,我想知道,有没有办法将参数设置为nvarchar(max)的等效sql参数类型?

我已经看过各种类似的问题(将参数传递给SQLCommand的最佳方法是什么?)但没有具体说明你是否可以(或不能)这样做.其次,如果我将存储过程中的@JobNumber参数设置为nvarchar(max),甚至需要这样做,因此我可能根本不需要在C#中设置长度?如果我这样做,这将有潜在的性能问题,如此问题中所建议的在添加SqlCommand参数时何时应该使用"SqlDbType"和"size"?

c# sql nvarchar sqlparameter

28
推荐指数
1
解决办法
5万
查看次数

与NVARCHAR(MAX)相比,SQL Server中XML数据类型的性能损失是多少?

我有一个数据库,将保留日志条目.

日志表中的一列包含序列化(到XML)对象,我的团队中的一个人建议使用XML数据类型而不是NVARCHAR(MAX).该表将"永久"保存日志(将来可能会考虑归档一些非常旧的条目).

我有点担心CPU开销,但我更担心数据库可以增长得更快(引用问题的FoxyBOA在使用XML时会增加70%的数据库).

我已经阅读了这个问题 ,它给了我一些想法,但我特别感兴趣的是澄清数据库大小是增加还是减少.

能否请您分享您在这方面的见解/经验.

BTW.我目前没有必要依赖SQL Server中的XML功能(在特定情况下,我几乎没有优势).将提取偶尔的日志条目,但我更喜欢使用.NET处理XML(通过编写小型客户端或使用.NET程序集中定义的函数).

xml t-sql sql-server nvarchar

26
推荐指数
1
解决办法
2万
查看次数