以下行适用于Oracle,但对于SQLServer,它不起作用,
CREATE INDEX IDX_1
ON Table1
(UID1,
UID2,
CONFIG,
DATE,
(UPPER(NAME)))
目前这表示'('附近的索引不正确。 有任何想法吗 ? 我听说过Collate,但不知道如何使用它。
答案 0 :(得分:1)
SQL Server替代方案如下:
CREATE TABLE Table1 (
UID1 int not null,
UID2 int not null,
CONFIG int not null,
DATE int not null, --:)
NAME varchar(39) not null,
UPPERNAME as UPPER(Name) PERSISTED
)
然后你可以创建一个索引:
CREATE INDEX IDX_1
ON Table1
(UID1,
UID2,
CONFIG,
DATE,
UPPERNAME)
不幸的是,对于您从此索引中查询受益,必须将其修改为直接使用UPPERNAME
,而不是使用UPPER
上的NAME
函数1}}列。
答案 1 :(得分:-1)
看起来应该是这样的
CREATE NONCLUSTERED INDEX IDX_1 on Table1
(
[UID1] ASC,
[UID2] ASC,
....
)WITH
(PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
DROP_EXISTING = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON)
如你所见,你应该熟悉很多参数。
我建议开始使用的一种方法是创建索引 SQL Server Management Studio UI助手然后创建脚本 使用助手顶部的按钮,对我来说这是一种很好的学习方式 这个。 目前我不确定是否使用像UPPER这样的函数调用来创建索引 可能与SQL Server,但我真的不知道这是否可能, 但是如果你把一把手枪放在我的胸前,我宁愿说不; o)