SQL - crear tabla llenada con resultado de cursor

   
Vista:

crear tabla llenada con resultado de cursor

Publicado por veronica (9 intervenciones) el 09/09/2008 16:18:01
hola.. tengo un cursor pero necesito crear una tabla para vaciar el resultado ...esta se actualizara diariamente con una tarea programada..

como creo ,actualizo e inserto los datos? en que parte de la sintaxis del cursor creo la tabla y en donde inserto? como seria la sintaxis?

gracias por leer la nota..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:crear tabla llenada con resultado de cursor

Publicado por Isaias (5073 intervenciones) el 09/09/2008 16:41:47
Si hablamos de SQL Server, no es recomendable el uso de cursores

DECLARE @tablename varchar(50)

DECLARE tables_cursor CURSOR FOR
SELECT TableName from #tables ORDER BY TableName
OPEN tables_cursor
FETCH NEXT FROM tables_cursor INTO @tablename
WHILE @@FETCH_STATUS=0
BEGIN
INSERT INTO #columns EXEC sp_columns @table_name=@tablename
FETCH NEXT FROM tables_cursor INTO @tablename
END
CLOSE tables_cursor
DEALLOCATE tables_cursor
drop table #tables
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda

Publicado por veronica (9 intervenciones) el 09/09/2008 17:04:45
toda la sintaxis anterior la agrego a mi cursor? si es asi en que parte?
o el cursor seria un sp y aparte haria otro sp para el llenado de la tabla?

si mis campos se llaman id ,fecha,banco, saldoinicial, cargo, abono y acumulado
con esta sisntaxis tambien se crea la tabla?

debe de ir asi?=

DECLARE @SaldosPorDia varchar(50)
DECLARE @id int
DECLARE @fecha int
DECLARE @banco int
DECLARE @saldoinicial int
DECLARE @cargo int
DECLARE @abono int
DECLARE @acumulado int

DECLARE tables_cursor CURSOR FOR
SELECT id ,fecha, banco,saldoinicial, cargo, abono, acumulado
from #SaldosPorDia ORDER BY fecha,banco
OPEN tables_cursor
FETCH NEXT FROM tables_cursor INTO @SaldosPorDia
WHILE @@FETCH_STATUS=0
BEGIN
INSERT INTO @id ,@fecha, @banco,@saldoinicial, @cargo, @abono, @acumulado

EXEC sp_columns @table_name=@SaldosPorDia
FETCH NEXT FROM tables_cursor INTO @tSaldosPorDia
END
CLOSE tables_cursor
DEALLOCATE tables_cursor
drop table #SaldosPorDia

dudas------
#tables= @tablename?
el nombrede mi tabla es SaldoPordia iria en #tables o @tablename?
gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:duda

Publicado por Isaias (5073 intervenciones) el 09/09/2008 17:35:41
Vero

Es un simple ejemplo, es para que lo tomes "literalmente" y no que lo quieras hacer igual.

¿como se crea la tabla?

CREATE TABLE #tuTabla --esta es una tabla temporal, sin el # es fija

Debes hacer el insert como lo indica la clausula

INSERT INTO #tuTabla (colx, colz, coly)
SELECT valor1, valor2, valor3 FROM..............................

Ya sea tomando los valores de alguna tabla o bien los valores de tu cursor.

¿quedo un poco mas claro?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda aclarada

Publicado por veronica (9 intervenciones) el 09/09/2008 18:06:34
sip. gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:duda aclarada

Publicado por Isaias (5073 intervenciones) el 10/09/2008 01:02:54
Perfecto !!!, de nada y saludos, por aqui andaremos...........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar