假设我们有一个包含 1200 万个姓名和地址的数据库,需要使用全文进行搜索,但每一行也包含一个整数值,比方说COMPANYID
。该表在这 1200 万行中包含大约 250 个不同的 COMPANYID。
在定义全文索引时,是否有可能COMPANY
在树中为每个索引提供自己的“分支”?
我写了这个简单的更新查询:
\n\nupdate foo set test =\'\xe8\xa4\xa0\xef\x81\xa2\xe0\xb0\x93\xef\xbf\xbd\xe1\xb5\x82\xeb\xb1\x97\xed\x85\xac\xe3\xb0\x97\' where id = 1\n
Run Code Online (Sandbox Code Playgroud)\n\n[test] 是 nvarchar(16) 列。它将包含一个加密值。
\n\n在 SSMS (10.50) 中,我已将网格结果和文本结果的字体设置为 Lucida Sans Unicode。字形 (\xe8\xa4\xa0\xef\x81\xa2\xe0\xb0\x93\xef\xbf\xbd\xe1\xb5\x82\xeb\xb1\x97\xed\x85\xac\xe3\xb0\ x97) 显示在查询编辑器窗口中。但网格结果和文本结果窗口总是显示简单的问号“?????????”而不是\xe8\xa4\xa0\xef\x81\xa2\xe0\xb0\x93\xef\xbf\xbd \xe1\xb5\x82\xeb\xb1\x97\xed\x85\xac\xe3\xb0\x97。
\n\n在“工具”->“选项”中更改字体后,我关闭并打开 SSMS。
\n\n任何建议,将不胜感激。我通常不需要理解本专栏的内容,但在测试以确保客户端应用程序发送正确的数据时,看到问号以外的其他内容会很有帮助。
\n假设不使用 ORDER BY 子句,在实例化表并用连续插入填充表的 TABLE 值函数中,插入顺序是否具有确定性?
我需要查看发送给我们的给定数据集中使用的 Unicode 字符范围,以便弄清楚为什么 SSMS 中的查询结果中的某些空格(或者至少在眼睛看来是空格)没有被使用。在某些解析例程中,其行为类似于 char(32)。因此,我编写了一个快速而肮脏的函数,将相关列中的字符串值转换为一组可以查询的元组:
create function [foo].[AllChars]
(@in nvarchar(max))
returns @t TABLE (c nchar(1))
as
begin
declare @i int;
while len(@in)>0
begin
insert @t(c) values (left(@in,1));
set @in = substring(@in, 2, len(@in)-1)
end
return;
end
Run Code Online (Sandbox Code Playgroud)
可以这样称呼:
select X.c theChar, unicode(X.c) uValue
from myTable T
cross apply foo.AllChars(T.myCol) X
Run Code Online (Sandbox Code Playgroud)
并将为myTable中的每一行返回一组元组:
t 116
h 104
e 101
32
c 99
a 97
t 116
10 <= culprit
i 105
n 110
32 …
Run Code Online (Sandbox Code Playgroud) sql-server determinism t-sql set-returning-functions non-deterministic