miércoles, 14 de noviembre de 2012

sysindexes, sys.indexes y INFORMATION_SCHEMA

Estoy en el proceso de migrar los DTS de SQL Server 2000 a paquetes de SSIS de 2008. Estoy aprovechando para implementar algunas mejores prácticas. La primera duda que tuve fue con el uso de sysindexes para saber de la existencia de un índice, era de mi conocimiento que lo recomendado por MS es utilizar sys.indexes porque sysindexes es considerado obsoleto y se mantiene para compatibilidad con versiones anteriores, es decir que el código que escribí en 2006 aún funciona, pero aún tenía la duda ¿cuál sería la mejor práctica?

Decidí consultar con él DBA, su repuesta fue que la mejor práctica para consultar la metadata en SQL Server es utlizar el conjunto de vistas INFORMATION_SCHEMA que es un estándar ANSI que MS implentó en SQL Server, pero el estándar no contempla brindar información de los indices.

Al final mi sentencia quedó:

IF EXISTS(SELECT 1 FROM sys.indexes WHERE name = 'IDX')
 DROP INDEX nombre_tabla.IDX

Para finalizar, doy a conocer mi decepción de la función "Migrate..." para los DTS, no me ha servido para nada porque la parte fundametal que es el Data Flow no la migra.

No hay comentarios:

Publicar un comentario

´