Ver Mensaje Individual
  #10 (permalink)  
Antiguo 12/10/2012, 01:23
GeriReshef
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
De acuerdo Respuesta: Crear Tabla con nombre dinamico

No te preocupes- esta respuesta es tambien definitivamente la ultima mia!

Lo que Pinal ha escrito en su entrada

refiere a la ejecución de SP_ExecuteSQL en la siguiente manera:
Código SQL:
Ver original
  1. EXEC SP_ExecuteSQL @stmt=N'Select * From sys.objects Where schema_id=@Schema_id',
  2.                     @params=N'@Schema_id Int',
  3.                     @Schema_id=4;
Así el rendimiento mejora porque el sistema no va a crear un nuevo plan de ejecución si lo ejecutas otra vez con otro valor (@Schema_id=1) y va a utilizar el plan almacenado en el Cache.

Si la ejecutas así
Código SQL:
Ver original
  1. EXEC SP_ExecuteSQL @stmt=N'Select * From sys.objects Where schema_id=4';
el sistema va a crear un nuevo plan para cada valor, lo mismo como con Exec(...).
La segunda ventaja es la seguridad: cuando utilizamos SP_ExecuteSQL con @params - evitamos el peligro de SQL Injection.

Lamentablemente- en el caso de crear tablas dinamicamente no podemos aprovechar estas ventajas porque no podemos utilizar el @params.
Como "regla de pulgar" - tienes razón,
aunque en el caso de crear tablas - se puede utilizar ambos.

Muchas gracias por tu paciencia y cortesía.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog