Inicial > SQL Server > 2 Índices em Variáveis do tipo Table

2 Índices em Variáveis do tipo Table

Muitas vezes temos a necessidade de criar 2 índices em variáveis do tipo table, mas o comando CREATE INDEX @TMP não roda pois não são permitidos comandos DDL em variáveis do tipo table, porém é possível definir 2 índices no comando de create da tabela, segue um exemplo bem prático.

  

SET STATISTICS PROFILE ON

 

DECLARE @Tmp TABLE(ID   Int IDENTITY(1,1) PRIMARY KEY,

                   Nome VarChar(200))

 

SELECT * FROM @Tmp

WHERE ID = 10

/*

SELECT * FROM @Tmp  WHERE ID = 10

  |–Clustered Index Seek(OBJECT:(@Tmp), SEEK:([ID]=(10)) ORDERED FORWARD)

*/

 

SELECT * FROM @Tmp

WHERE Nome = ‘Teste’

/*

SELECT * FROM @Tmp  WHERE Nome = ‘Teste’

  |–Clustered Index Scan(OBJECT:(@Tmp), WHERE:([Nome]=’Teste’))

*/

GO

— Exemplo de UNIQUE

DECLARE @Tmp TABLE(ID   Int IDENTITY(1,1) PRIMARY KEY,

                   Nome VarChar(200) UNIQUE)

 

SELECT * FROM @Tmp

WHERE ID = 10

 

/*

SELECT * FROM @Tmp  WHERE ID = 10

  |–Clustered Index Seek(OBJECT:(@Tmp), SEEK:([ID]=(10)) ORDERED FORWARD)

*/

 

SELECT * FROM @Tmp

WHERE Nome = ‘Teste’

 

/*

SELECT * FROM @Tmp  WHERE Nome = ‘Teste’

  |–Index Seek(OBJECT:(@Tmp), SEEK:([Nome]=’Teste’) ORDERED FORWARD)

*/

Categorias:SQL Server
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário