相关疑难解决方法(0)

varchar和nvarchar有什么区别?

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

sql-server varchar nvarchar

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

什么时候必须在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万
查看次数

在nvarchar字符串中搜索时,SQL Server使用高CPU

请查看以下示例.它表明在unicode字符串(nvarchar)中搜索几乎是在varchar字符串中搜索的八倍.与隐含转换相提并论.寻找解释.或者更有效地在nvarchar字符串中搜索的方法.

use tempdb
create table test
(
    testid int identity primary key,
    v varchar(36),
    nv nvarchar(36),
    filler char(500)
)
go

set nocount on
set statistics time off
insert test (v, nv)
select CAST (newid() as varchar(36)),
    CAST (newid() as nvarchar(36))
go 1000000

set statistics time on
-- search utf8 string
select COUNT(1) from test where v like '%abcd%' option (maxdop 1)
-- CPU time = 906 ms,  elapsed time = 911 ms.

-- search utf8 string using unicode (uses convert_implicit) …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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

varchar或nvarchar

我存储名字和姓氏,每个最多30个字符.哪个更好varcharnvarchar.

我已阅读,nvarchar尽可能多的空间两倍占用比varcharnvarchar用于国际化.

所以我建议你应该使用:nvarchar或者varchar

另外,请告诉我两者的表现.两者的表现是相同的还是性能不同.因为空间不是太大的问题.问题是表现.

sql sql-server variables sql-server-2005

13
推荐指数
2
解决办法
9021
查看次数

加入nvarchar与int相比,性能差异有多大

我知道nvarchar上的连接速度较慢,因为索引比nvarchar更大,每个字符使用2个字节,但int总是4个字节.连接性能差异是否显着?是否有任何强有力的理由避免加入nvarchar?我找不到任何有关该主题的MSDN文章.

sql sql-server sql-server-2005 sql-server-2008

10
推荐指数
1
解决办法
1992
查看次数

我不应该在Sql Server中使用NVARCHAR吗?

我现在正在设计一个数据库方案,为了安全起见我应该使用nvarchar作为我的文本列的数据类型(用于unicode支持).虽然我不期望非英语文本,但我认为最好从一开始就支持它以防万一.

我有什么理由坚持使用普通varchar吗?性能?

sql sql-server varchar nvarchar

6
推荐指数
2
解决办法
4411
查看次数

你的 Nvarchar() 有多大

设计数据库时,在决定 nvarchar 应该有多大时,您会考虑哪些决定。

如果我要制作一个地址表,我的直觉反应是地址行 1 为 nvarchar(255),就像旧的访问数据库一样。

我发现使用这个让我对旧的“字符串将被截断”感到烦恼。我知道可以通过限制输入框来防止这种情况,但如果用户确实拥有超过 255 的地址行,则应该允许这种情况。

我应该让我的 nvarchar(????) 有多大

database sql-server database-design nvarchar

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

UCS-2和SQL Server

虽然研究在SQL Server数据库中存储大多数英语但有时不存储数据的选项可能会非常大,但我倾向于将大多数字符串数据存储为UTF-8编码.

但是,微软之所以选择UCS-2是因为我并不完全明白是什么导致我猜测这种倾向.SQL Server 2012的文档确实展示了如何创建UTF-8 UDT,但UCS-2的决定可能会遍及SQL Server.

Wikipedia(有趣地指出UCS-2已经过时,支持UTF-16)注意到UTF-8是一个可变宽度字符集,能够编码任何Unicode数据点及其provides the de facto standard encoding for interchange of Unicode text.因此,感觉任何Unicode字符都可以用UTF-8表示,并且由于大多数文本都是英文,因此表示将几乎是UCS-2的两倍(我知道磁盘"便宜",但磁盘缓存不是并且,内存与我正在处理的数据大小不相比.当工作集大于可用RAM时,许多操作会以指数方式降级.

游泳UCS-2流可能会遇到什么问题?

sql-server unicode ucs2 utf-8 utf-16

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