Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2018, 08:14
Avatar de Huasi
Huasi
 
Fecha de Ingreso: mayo-2007
Mensajes: 83
Antigüedad: 17 años, 6 meses
Puntos: 2
Crear Indice en Multiples Tablas y Servers

Hola como estan. Les hago una consulta.
Tengo la necesidad de crear un nuevo índice para una tabla y campo, es algo bastante simple la verdad y lo estoy logrando para una base de datos.
El problema es que tengo tres servidores y cerca de 40 bases de datos por servidor, por lo cual desarrolle un script con manejo de cursor para que al correrlo ejecute la creación del índice en cada server y base de datos.
Lo que hace el script es armar una tabla temporal concatenando servidor y base de datos dentro de una variable y ejecutar el create index por cada iteración.

Este funciona:

CREATE INDEX ix_Fecha ON Compras (FechaHora)

Con el script no funciona:

CREATE INDEX ix_Fecha ON @Base (FechaHora)

El valor de @base es: nombreServer.nombreBase.dbo.nombreTabla

Logro hacerlo funcionar cuando estoy en cada servidor para las bases de datos que tiene almacenadas.

El error que me da es:
The object name 'SERVER.BASE.dbo.Tabla' contains more than the maximum number of prefixes. The maximum is 2.

En la consulta cada nombre esta dentro de corchetes [SERVER].[BASE]
Y dentro de una variable:
Cita:
SET @querySQL = 'CREATE INDEX ix_Fecha ON '+@Base+'';
EXEC sp_executesql @querySQL

Alguna idea?

Última edición por Huasi; 23/10/2018 a las 08:34