Un cursor es una estructura de programación de base de datos SQL que la mayoría de los programadores de bases de datos tratan de evitar siempre que sea posible . Una base de datos SQL se construye para procesar grupos de registros , o " conjuntos de datos ", pero el cursor está diseñado para manejar un solo registro a la vez --- y también puede bloquear todos los programas de las tablas que hacen referencia hasta que estén finalmente hecho . Sustitución de cursores con diferentes estructuras es casi siempre una buena práctica de programación SQL . Emular un cursor con un bucle while
un bucle while es similar a una estructura de cursor , pero no realiza las mismas penas de bloqueo. Por lo tanto , puede tomar casi todo el tiempo de procesamiento, pero no bloquear otros programas de las tablas que está utilizando
Un ejemplo de una estructura bien : .
Mientras condición ( el programa se bucle mientras la condición es verdadera )
Comience
código ( el código se ejecutará una vez en cada pasada por el bucle While ) End
definir una función
SQL tiene funciones definidas por el usuario . En lugar de reunir todos los resultados y analizarlos uno a la vez con un cursor , la función definida por el usuario puede ser utilizado como parte de la instrucción Select .
Para poder hacer una función definida por el usuario en un Select consulta, utilice la siguiente estructura:
Seleccione nombre, apellido , dbo.user_function ( account_balance ) como AverageBalance
Construye una expresión de tabla común
Piensa en una expresión de tabla común como una tabla temporal trucado . Usted puede construir una expresión común tabla usando una variedad de consultas estándar y luego trabajar con ellos como si fueran tablas de SQL estándar
La estructura de una expresión de tabla común es: .
My_CTE (
consultas de selección estándar van aquí
) ;
Después my_CTE se ha definido , cualquier consulta adicional puede hacer referencia a ella como si fuera una tabla
.
una identidad columna
una de las razones más comunes de utilizar un cursor es para desplazarse a través de una tabla que no tiene una columna de identidad --- es decir, un identificador único para cada fila de la tabla . Sin esa identificación , es muy difícil trabajar con los datos con consultas SELECT estándar. Modificación de la tabla para añadir una columna de clave principal resuelve ese problema y debe eliminar la necesidad de un cursor para examinar cada registro individual.