2010-02-03 12 views
6

He tenido la impresión de que citar números enteros en consultas SQL está mal visto, pero recientemente aprendí que los marcos importantes como Django se adhieren a esta práctica. ¿Es de hecho perfectamente aceptable?Citando enteros

Respuesta

8

La pregunta implica que en primer lugar coloque valores simples en su consulta SQL. Creo que la práctica más "aceptable" sería parametrizar la consulta en su lugar, de esa manera no tienes que preocuparte por cuestiones como esta; deje que la biblioteca de acceso a datos lo maneje por usted.

+3

+1 para la parametrización! – AdaTheDev

+0

+1, no usar bind-params es una idea mucho peor en un marco. – macabail

+0

Si bien la parametrización parece una buena idea, en realidad no vale la pena la cantidad de líneas de código repetitivo que requiere. Encontrarás muchas aplicaciones exitosas sin él (como Django, supongo) – Andomar

0

Citar enteros en SQL solo tiene una pequeña penalización de rendimiento. Eliminar las comillas es mucho menos trabajo que convertir la representación ASCII en un entero binario.

Así que yo diría que es perfectamente aceptable, especialmente para un marco RAD.

+0

Pero el entero todavía tiene que convertirse de cualquier manera. – recursive

0

No estoy seguro de todas las bases de datos SQL, pero SQL Server convertirá implícitamente un número entre comillas en un int. Por ejemplo, lo siguiente devuelve 166 en SQL Server 2000:

select '500'/3