Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Desventajas de usar Querys Dinamicos

142 views
Skip to first unread message

Daniel H. Villa

unread,
Apr 25, 2008, 9:21:48 AM4/25/08
to
Hola compañeros:

Segun tengo entendido que hay ciertas desventajas para usar dentro de un SP,
querys como esta forma:

SET @CommandString = 'SELECT C.CongressID, C.CongressName, ' +
' dbo.StatusToText(2,C.CongressType) AS CongressType, C.StartDate,
C.EndDate, C.LimitDate, C.InscriptionCost, C.AccomodationsCost,
C.AirticketCost, ' +
' dbo.StatusToText(3,C.Status) AS Status, C.Status AS StatusCode, ' +
' (SELECT COUNT(*) ' +
' FROM Scholarship S ' +
' JOIN AdminUser AU ' +
' ON AU.AdminUserID = S.CreatedBy ' +
@WhereSQString +
' ) AS ScholarshipToAuth ' +
' FROM Congress C ' +
@WhereString

--PRINT @CommandString
EXECUTE (@CommandString)

RETURN(@@Error)


Me gustaria saber si hay una forma de hacer esto pero sin el manejo de un
query dinamico:

--
Salu2 Cordiales :-))

(""'·._.·L.I. Daniel Villa·._.·'"")


Alejandro Mesa

unread,
Apr 25, 2008, 12:01:00 PM4/25/08
to
Daniel H. Villa,

El problema no es usar queries dinamicos, sino como creas esos queries. Si
te das cuenta, estas concatenando valores entrados por el usuario y esto si
es peligroso.

1 - Tienes que lidear con los apostrofes cuando concatenas valores
caracteres o fechas.

2 - Si no usas parametros, entonces puedes sobrecargar el cache de
procedimientos con multiples copias del mismo query ya que al substituir los
valores directamente en el texto, el optimizador los considera como queries
diferentes.

3 - Ojo, te expones a que se injecte codigo T-SQL, lo cual pone en riesgo tu
instancia. Puedes usar Microsoft Live Search para buscar informacion
respecto a "Injeccion de codigo T-SQL" o en Ingles "SQL Injection".

The Curse and Blessings of Dynamic SQL
http://www.sommarskog.se/dynamic_sql.html

AMB

0 new messages