问题标签 [nvarchar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
461 浏览

sql - Sql 尝试更改大小写字母并将相似的 nvarchar 值分组

我正在使用 sql server 2008,我正在尝试构建一个查询来显示来自单个 sql 表的一些整体结果。我想显示每个日期的计数(字段名),例如我想知道每个日期在表中重复名称“izla”的频率,但它也可能是“IZLA”或“Izla”,所以我必须找到一种将这些数据组合在一起并找到它们三个的计数的方法。

问题是,如果我尝试使用大写或小写,以便它们被自动视为相同,我会遇到问题:当 izla 转换为大写时,它变成了 İZLA,或者另一方面,当 IZLA 转换为小写时,它显示为 ızla。

最大的问题是如何将这些数据组合在一起?也许问题来自使用 nvarchar 但我需要列类型是这样的(不能改变它)。

0 投票
9 回答
29559 浏览

database-design - 为 (n)varchar 列选择什么大小?

关于 TDWTF 的稍微激烈的讨论中,出现了一个关于数据库中 varchar 列的大小的问题。

例如,取一个包含人名的字段(只有名字,没有姓氏)。很容易看出它不会很长。大多数人的名字少于 10 个字符,很少有人超过 20 个字符。如果您将列设为 varchar(50),它肯定会包含您遇到的所有名字。

然而,对于大多数 DBMS,无论您制作 varchar(50) 还是 varchar(255),大小或速度都没有区别。

那么,为什么人们要尽可能地缩小他们的列呢?我知道在某些情况下,您可能确实想限制字符串的长度,但大多数情况下并非如此。只有在极少数情况下姓名极长的人的情况下,更大的边距才是有益的。


补充:人们想要参考关于“大小或速度没有差异”的声明。好的。他们来了:

对于 MSSQL:http://msdn.microsoft.com/en-us/library/ms176089.aspx

存储大小是输入数据的实际长度 + 2 个字节。

对于 MySQL:http://dev.mysql.com/doc/refman/5.1/en/storage-requirements.html

如果列值需要 0 – 255 个字节,则 L + 1 个字节,如果值可能需要超过 255 个字节,则 L + 2 个字节

我找不到 Oracle 的文档,也没有使用过其他 DBMS。但我没有理由相信那里有什么不同。

0 投票
2 回答
2838 浏览

sql - 确定 nvarchar 列中的 varchar 内容

我有一堆 NVARCHAR 列,我怀疑它们在 VARCHAR 列中包含完全可存储的数据。但是我不能只是将列的类型更改为 VARCHAR 并希望最好,我需要进行某种检查。

我想进行转换,因为数据是静态的(将来不会更改)并且列已编入索引,并且与实际(nvarchar)索引相比,将受益于较小的(varchar)索引。

如果我简单地说

那么我不会收到错误或警告。Unicode 数据将被截断/丢失。

我该如何检查?

0 投票
4 回答
25776 浏览

sql - 在休眠中映射到 varchar 和 nvarchar

如果数据库中有 2 列,例如。

如何告诉hibernate通过varchar进行代码搜索?

在休眠映射中,字符串被映射到 nvarchar 并产生如下查询:

这非常糟糕,因为它会导致索引扫描而不是索引查找操作(扫描所有索引节点而不是直接转到请求的节点)

由于代码用于数百万行以及多个索引和外键中,将其从 varchar 更改为 nvarchar 将导致性能下降(更多的 IO 操作,因为 nvarchar 使用的空间是 varchar 的两倍)。

有没有办法告诉hibernate根据数据库类型而不是Java类型进行映射?

谢谢

0 投票
3 回答
30627 浏览

sql - 对于 Nvarchar(Max),我在 TSQL 中只得到 4000 个字符?

这是 SS 2005 的。

为什么我只得到 4000 个字符而不是 8000 个字符?

它在 4000 处截断字符串 @SQL1。

0 投票
5 回答
2549 浏览

sql - Nvarchar 或 varchar 哪个更好地使用 2 或四舍五入的整数?

我的问题是在 SQL 中生成列时使用什么更好。nvarchar (varchar) 的大小应该乘以 2 (32, 64, 128) 还是没关系,我们可以使用完整的数字示例 '100', '50' ?

非常感谢您有理由的回答

祝福大家

0 投票
1 回答
564 浏览

foreign-keys - 带有尾随空格的 SQL Server CE nvarchar 外键

在 SQL Server CE 中,nvarchar 字段的外键约束仅在删除尾随空格后才强制执行。这意味着如果 PK 是“foo”,我可以将“foo”插入 FK。
为什么会这样?它似乎严重破坏了外键系统应该提供的数据完整性。

有没有办法强制执行外键约束,以便在比较中包含空格?我有哪些选项可以解决此问题?
用整数替换 FK 字段是最明显的解决方案,但由于相关应用程序的实现方式,这是最后的手段(在我的情况下)。

0 投票
2 回答
1732 浏览

sql - TSQL:在字符串中显式指定 NVARCHAR 有什么好处?

当您添加新的传递job_typesys.sp_cdc_add_job @job_type,
(类型为nvarchar(20)

您可以将参数传递为

  • N'清理'
  • 清理

使用前一种语法N'将参数传递给存储过程是否有任何理由或好处?

0 投票
1 回答
5737 浏览

sql - Linq to SQL nvarchar 问题

我在 Linq to SQL 中发现了一个巨大的性能问题。

当使用字符串从表中选择时,传递给 sql server 的参数始终是 nvarchar,即使 sql 表是 varchar。这会导致表扫描而不是搜索,这是一个巨大的性能问题。

该参数作为 nvarchar 传递,这会导致整个索引在使用之前从 varchar 转换为 nvarchar。

如果参数是 varchar,则它是一个非常快速的查找。

有没有办法覆盖或改变它?

谢谢问候克雷格。

0 投票
4 回答
523 浏览

sql-server - .Net 压缩和 SQL Server 2005 NVARCHAR(MAX)

我可以在 SQLServer 2005 NVARCHAR(MAX) 字段中安全地存储 .Net 压缩内存流 (System.IO.Compression) 吗?SQLServer 2008 不是替代品。