¿Existe una forma de recorrer una variable de tabla en TSQL sin utilizar un cursor?
Digamos que tengo la siguiente variable de tabla simple:
declare @databases table
(
DatabaseID int,
Name varchar(15),
Server varchar(15)
)
-- insert a bunch rows into @databases
¿Es la declaración y el uso de un cursor mi única opción si quiero iterar a través de las filas? ¿Hay otra manera?
231
3
En primer lugar, debe estar absolutamente seguro de que necesita iterar a través de cada fila - las operaciones basadas en conjuntos serán más rápidas en todos los casos que se me ocurren y normalmente utilizarán un código más sencillo.
Dependiendo de sus datos, puede ser posible hacer un bucle utilizando sólo sentencias select como se muestra a continuación:
Otra alternativa es utilizar una tabla temporal:
La opción que debe elegir depende realmente de la estructura y el volumen de sus datos.
Nota: Si usted está usando SQL Server que sería mejor usar:
Usando
COUNT
tendrás que tocar todas las filas de la tabla, elEXISTS
sólo necesita tocar la primera (ver la respuesta de Josef's más abajo).Así es como yo lo haría:
Puedes utilizar un bucle while: