SQL Server - procedimientos almacenados

 
Vista:

procedimientos almacenados

Publicado por LUNA (1 intervención) el 05/06/2007 03:27:24
Hola a todos, tengo este procedimiento y no lo entiendo muy bien, al lado del codigo escribo donde estas mis dudas, asi:-------------->

CREATE PROCEDURE sp_InsertarOrdenSitio
(
@IDSITIOP INT,
@MESORDENSITIO INT,
@ANOORDENSITIO INT,
@IVA FLOAT,
)
AS
SET NOCOUNT ON -------------> NO ENTIENDO ESTE COMANDO


--SE ACTUALIZA LA TABLA ORDENSITIO, CAMPO ORDENSITIO=0, PERO ESE VALOR YA LO TIENE LOS CAMPOS, PARA QUE ENTONCES?

UPDATE dbo.ORDENSITIO SET NUEVAORDENSITIO = 0

--SE DECLARAN LAS VARIABLES
DECLARE
@IDSITIO INT,
@IDCAMPANA INT,
@IDMONEDA INT,
@MESORDENSITIOA INT,
@ANOORDENSITIOA INT,
@FECHAINICIOORDENSITIO DATETIME,

DECLARE CURSORORDEN CURSOR FOR --------> PARA QUE EL CURSOR

SELECT IDSITIO, IDCAMPANA, IDMONEDA, MESORDENSITIOTMP, ANOORDENSITIOTMP,
FECHAINICIOORDENSITIOTMP, FECHAFINORDENSITIOTMP, CPMORDENSITIOTMP,
FROM ORDENSITIOTMP
WHERE MESORDENSITIOTMP=@MESORDENSITIO AND ANOORDENSITIOTMP=@ANOORDENSITIO
OPEN CURSORORDEN

FETCH NEXT FROM CURSORORDEN INTO -------->PARA QUE FETCH NEXT
@IDSITIO,@IDCAMPANA, @IDMONEDA, @MESORDENSITIOA, @ANOORDENSITIOA,
@FECHAINICIOORDENSITIO

--Se recorre el cursor
WHILE (@@fetch_status <> -1)-----------> QUE ES @@fetch
BEGIN
INSERT INTO ORDENSITIO ( IDSITIO, IDCAMPANA, IDMONEDA, MESORDENSITIO, ANOORDENSITIO,FECHAINICIOORDENSITIO )
VALUES (@IDSITIO,@IDCAMPANA, @IDMONEDA, @MESORDENSITIO, @ANOORDENSITIO,@FECHAINICIOORDENSITIO)
FETCH NEXT FROM CURSORORDEN INTO @IDSITIO,@IDCAMPANA, @IDMONEDA, @MESORDENSITIOA, @ANOORDENSITIOA,@FECHAINICIOORDENSITIO
END
CLOSE CURSORORDEN
DEALLOCATE CURSORORDEN---------> QUE SIGNIFICA DEALLOCATE

SET NOCOUNT OFF
RETURN
GO

GRACIAS
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:procedimientos almacenados

Publicado por Isaías (3308 intervenciones) el 05/06/2007 18:45:16
LUNA

Todas tus dudas las resuelve LA AYUDA EN LINEA, de tenerla instalada (si no, te sugiero que la instales):

SET NOCOUNT ON -------------> NO ENTIENDO ESTE COMANDO

Hace que deje de devolverse como parte de los resultados el mensaje que indica el número de filas afectado por una instrucción Transact-SQL.

DECLARE CURSORORDEN CURSOR FOR --------> PARA QUE EL CURSOR

No estan recomenados el uso de los cursores, ya que degradan la respuesta del servidor, un cursor, es un conjunto de registros en memoria, ¿Para que el cursor?, habria que preguntarle a quien diseño el store para que lo declaro.

FETCH NEXT FROM CURSORORDEN INTO -------->PARA QUE FETCH NEXT

Avanza al siguiente registro del cursor (avanza una posicion)

WHILE (@@fetch_status <> -1)-----------> QUE ES @@fetch

Devuelve el estado de la última instrucción FETCH de cursor ejecutada sobre cualquier cursor que la conexión haya abierto, tipicamente es preguntar por un EOF de un conjunto de registros.

DEALLOCATE CURSORORDEN---------> QUE SIGNIFICA DEALLOCATE

Quita una referencia a un cursor. Cuando se ha quitado la última referencia al cursor, Microsoft® SQL Server™ libera las estructuras de datos que componen el cursor., BORRA el cursor de la memoria.
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:procedimientos almacenados

Publicado por luna (1 intervención) el 06/06/2007 00:06:21
muchisimas gracias, has sido muy concreto y 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