如何在表变量中的列上创建索引

Dot*_*ser 3 sql-server-2008

假设我声明了一个表变量,其中包含一些列.

声明@MyContacts表(

//其中的列定义

);

可以说我有一个columnA,如何在SQL Server 2008中对其进行索引.

JNK*_*JNK 5

如果你有一个足够大的表需要索引,不要在表变量中执行,在临时表中执行它!

表变量有各种限制,包括:

  • 没有统计信息 - 优化器总是假设它们只有一行
  • 没有非聚集索引(除了约束)
  • 在直接范围之外没有可见性 - 子过程无法访问您的表变量.
  • 在事务范围之外 - 你不能ROLLBACK对表变量做任何事情,因为它没有记录在事务日志中

如果你有足够大的东西需要索引,那么把它放在临时表中.