SQL_Latin1_General_CP1_CI_AS 中 Z 后面是什么?

3

我正在尝试证明生产数据库中的一个表设计缺陷,即表不能在一个随机数据列上具有聚集主键,例如由最终用户输入的代码。

虽然我们知道解决方案是将主键设置为非聚集,但出于测试目的,我仍需要向其添加行以进行测试。因此,我需要知道在“Z”之后可以使用什么字符作为前缀。

此外,该列不是Unicode,并且在我的虚假数据中加入一系列Z会很混乱。该表现在已经有数十万行,每次插入都需要几秒钟。


这段代码无法正常工作,因为排序规则会在'A'之前处理它:select char(ascii('z') + 1) - Irawan Soetomo
1个回答

8

只需运行此操作并按列表进行。我添加了夹在中间的点以增强清晰度,特别是有涉及非可见字符时。

select number, '.' + char(number) + '.' collate SQL_Latin1_General_CP1_CI_AS thechar
from master..spt_values
where type='p' and number between 28 and 255
order by thechar

“Z”后面只有4个字符,因为您说该列不是N(Var)Char类型。
121 .y.
89  .Y.
253 .ý.
221 .Ý.
255 .ÿ.
90  .Z.
122 .z.
208 .Ð.
240 .ð.
254 .þ.
222 .Þ.

谢谢Richard,不幸的是,.Ð.ð.þ.Þ.被自动翻译成了.D.d.t.T.,这是因为(抱歉)排序规则实际上是Chinese_PRC_CI_AS,而Z之后没有任何字符!顺便说一句,使用master..spt_values生成2048个自由数字的逻辑很好。 - Irawan Soetomo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接