Problema with update

04/09/2008 - 00:38 por Roberto Londono | Informe spam
Hola amigos
Tengo el siguiente situacion
Tengo una tabla con las fechas que son fin de semana y fiesta para mi
empresa. Tengo otra tabla disponibilidad de equipos en la cual tiene los
campo equimentid, dia1,dia2... dia31.Todas la columnas/Campos day1 hasta dia
31 tiene el valor por defult 1 es significa que esta libre. Ahora necesito
marcar todos dias de fiesta con 2 deacurdo para un mes espesifico.

este el codigo que hecho

Declare @Day int
Declare @Month int
Declare @Totalrow int
Declare @DayName nvarchar (50)
Declare @Count int



Select @Totalrow= Count (Weekendday) from EPM_CMN_WeekendDate
Where Month (Weekendday)=9


Declare WeekendDay Cursor
Local
Dynamic
For Select day (Weekendday) from EPM_CMN_WeekendDate
Where Month (Weekendday)=9

Declare @WeekendDayCursor Cursor

Open WeekendDay

Set @WeekendDayCursor=WeekendDay

Set @count=1
Where @count <=@Totalrow
BEGIN
Fetch WeekendDay
into @day
Select @dayName= 'Day'+ Ltrim(str(@Day))

Update GUC_RTN_AbilityEquipment set @dayName=2
Where @dayName=@dayName
Set @count=@Count+1
End

Close WeekendDay
Deallocate WeekendDay

Cualquier sugerencia de antemano le agradesco por el tiempo y la ayuda.

Roberto
 

Leer las respuestas

#1 Maxi Accotto
05/09/2008 - 02:00 | Informe spam
Roberto, deberas saber que los cursores no son un buen amigo de SQL, te
recomiendo que elimines el cursor y solamente uses el update haciendo join
con las tablas que necesitas.
Como no dispongo aqui de tu estructura completa y algunos datos para validar
te invito a que mires los ejemplos de update en tus libros on line.

Pero tu codigo ya te comento que es ineficiente por el uso de los cursores


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"Roberto Londono" escribió en el
mensaje de noticias:
Hola amigos
Tengo el siguiente situacion
Tengo una tabla con las fechas que son fin de semana y fiesta para mi
empresa. Tengo otra tabla disponibilidad de equipos en la cual tiene los
campo equimentid, dia1,dia2... dia31.Todas la columnas/Campos day1 hasta
dia
31 tiene el valor por defult 1 es significa que esta libre. Ahora
necesito
marcar todos dias de fiesta con 2 deacurdo para un mes espesifico.

este el codigo que hecho

Declare @Day int
Declare @Month int
Declare @Totalrow int
Declare @DayName nvarchar (50)
Declare @Count int



Select @Totalrow= Count (Weekendday) from EPM_CMN_WeekendDate
Where Month (Weekendday)=9


Declare WeekendDay Cursor
Local
Dynamic
For Select day (Weekendday) from EPM_CMN_WeekendDate
Where Month (Weekendday)=9

Declare @WeekendDayCursor Cursor

Open WeekendDay

Set @WeekendDayCursor=WeekendDay

Set @count=1
Where @count <=@Totalrow
BEGIN
Fetch WeekendDay
into @day
Select @dayName= 'Day'+ Ltrim(str(@Day))

Update GUC_RTN_AbilityEquipment set @dayName=2
Where @dayName=@dayName
Set @count=@Count+1
End

Close WeekendDay
Deallocate WeekendDay

Cualquier sugerencia de antemano le agradesco por el tiempo y la ayuda.

Roberto

Preguntas similares