Sql 在表变量上创建非聚集索引
如何在下面的表变量上创建非聚集索引?我试过了,但它抛出了一个异常 “@TBL”附近的语法不正确 我的代码:Sql 在表变量上创建非聚集索引,sql,sql-server,Sql,Sql Server,如何在下面的表变量上创建非聚集索引?我试过了,但它抛出了一个异常 “@TBL”附近的语法不正确 我的代码: DECLARE @TBL TABLE(ID INT PRIMARY KEY, FROMDATE DATETIME, TODATE DATETIME) CREATE NONCLUSTERED INDEX IX_myindex ON @TBL (FROMDATE); 谢谢您必须在表定义中声明索引。虽然支持索引(自SQL Server 2014年起),但创建索引语法不支持表变量。因此:
DECLARE @TBL TABLE(ID INT PRIMARY KEY, FROMDATE DATETIME, TODATE DATETIME)
CREATE NONCLUSTERED INDEX IX_myindex
ON @TBL (FROMDATE);
谢谢您必须在表定义中声明索引。虽然支持索引(自SQL Server 2014年起),但
创建索引
语法不支持表变量。因此:
DECLARE @TBL TABLE (
ID INT PRIMARY KEY,
FROMDATE DATETIME,
TODATE DATETIME,
INDEX idx_tbl_fromdate (FROMDATE)
);
他是一把小提琴
编辑:
如果需要具有索引的临时表,请使用临时表。如果您的版本支持此语法,则可以执行以下操作:
CREATE temp_table (
ID INT PRIMARY KEY,
FROMDATE DATETIME,
TODATE DATETIME,
INDEX idx_tbl_fromdate (FROMDATE)
);
否则单独创建索引。必须在表定义中声明索引。虽然支持索引(自SQL Server 2014年起),但
创建索引
语法不支持表变量。因此:
DECLARE @TBL TABLE (
ID INT PRIMARY KEY,
FROMDATE DATETIME,
TODATE DATETIME,
INDEX idx_tbl_fromdate (FROMDATE)
);
他是一把小提琴
编辑:
如果需要具有索引的临时表,请使用临时表。如果您的版本支持此语法,则可以执行以下操作:
CREATE temp_table (
ID INT PRIMARY KEY,
FROMDATE DATETIME,
TODATE DATETIME,
INDEX idx_tbl_fromdate (FROMDATE)
);
否则单独创建索引。您可以在表变量定义中定义
索引
:
DECLARE @TBL TABLE (
ID INT PRIMARY KEY,
FROMDATE DATETIME,
TODATE DATETIME
INDEX FROMDATE NONCLUSTERED
)
您可以在表变量定义中定义
索引
:
DECLARE @TBL TABLE (
ID INT PRIMARY KEY,
FROMDATE DATETIME,
TODATE DATETIME
INDEX FROMDATE NONCLUSTERED
)
您可以在此处查看您可以在此处查看“索引附近的语法不正确”。如果这是表提示的一部分,则现在需要带关键字和括号的。有关正确的语法,请参阅SQL Server联机丛书。“@user…”。如答案所述,表变量中的显式索引仅在SQL Server 2014之后才受支持。您可能正在使用不支持此功能的旧版本。在这种情况下,只需使用临时表。根据副本,您可以为此创建唯一的约束<代码>声明@TBL表(ID INT主键,FROMDATE DATETIME,TODATE DATETIME,唯一的非聚集(FROMDATE,[ID])代码>这与@TBL(FROMDATE)上的
创建非聚集索引IX_myindex相同如果该语法为AllowGetting“INDEX附近的语法不正确”,则code>仍将创建。如果这是表提示的一部分,则现在需要带关键字和括号的。有关正确的语法,请参阅SQL Server联机丛书。“@user。如答案所述,表变量中的显式索引仅在SQL Server 2014之后才受支持。您可能正在使用不支持此功能的旧版本。在这种情况下,只需使用临时表。根据副本,您可以为此创建唯一的约束<代码>声明@TBL表(ID INT主键,FROMDATE DATETIME,TODATE DATETIME,唯一的非聚集(FROMDATE,[ID])代码>这与@TBL(FROMDATE)上的创建非聚集索引IX_myindex相同如果该语法被允许,code>仍将创建