SQL Server - Enumerar columna en un sp

 
Vista:

Enumerar columna en un sp

Publicado por Pablo (31 intervenciones) el 17/04/2009 17:41:36
Hola!... aquí nuevamente... estoy tratando de enumerar una columna a travez de un sp, la idea es anexar datos a una tabla y que esta tenga un campo enumerado ..osea 1,2,3,4... pero que no sea con un campo identidad en la tabla de recepción sino para poder sumarlo a otro número esto es para que no se me repita la Primary key.. alguien me puede ayudar porfa?...existe alguna función que haga esto?...

de ante mano gracias y Saludos.
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
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Enumerar columna en un sp

Publicado por Isaias (4558 intervenciones) el 18/04/2009 03:51:01
Consulta en tu ayuda en linea NEWID(), espero te sirva.
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:Enumerar columna en un sp

Publicado por Pablo (31 intervenciones) el 21/04/2009 16:53:05
Muchas Gracias Isaias me sirvió mucho tu dato...

Saludos.
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:Enumerar columna en un sp

Publicado por Pablo (31 intervenciones) el 21/04/2009 17:31:00
Bueno si alguien le interesa mandaré la solución a mi pregunta...mi intención es solo ayudar...

SET ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROCEDURE [dbo].[sp_ProcedimientoEnumeraID]
AS
SET NOCOUNT ON

DECLARE @I INT
DECLARE @ID CHAR(50)
DECLARE @Rut INT
DECLARE @DVRut CHAR(1)

SET @I=0

DECLARE X_CURSOR CURSOR FOR

/*aqui usaré la hora actual para dar un valor a ID */

SELECT CONVERT(nvarchar, { fn NOW() }, 121) AS ID, Rut, DVRut
FROM TABLADELECTURA

OPEN X_CURSOR
FETCH NEXT FROM X_CURSOR

INTO @ID, @Rut, @DVRut

WHILE @@FETCH_STATUS = 0
BEGIN

/*aqui usaré la hora actual MAS el valor de la variable "I" para que no repita el ID

SET @ID= CONVERT(nvarchar, { fn NOW() }, 121) + STR(@I,len(@I))

INSERT INTO TABLADEINGRESO (ID, Rut, DVRut)
VALUES(@ID, @Rut, @DVRut)

SET @I=@I+1

FETCH NEXT FROM X_CURSOR
INTO @ID, @Rut, @DVRut
END

CLOSE X_CURSOR
DEALLOCATE X_CURSOR

FUNCIONA OK SALUDOS...

PD: La funcion NEW() al ser asignada a @ID funciona bien también para que no se repita el ID.
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