SQL Server - id automatico y especifico

 
Vista:

id automatico y especifico

Publicado por David (7 intervenciones) el 08/11/2010 17:47:34
Hola, muy buenas a todos! y gracias por las futuras respuestas :)

La duda es la siguiente:(mode: NOVATO)

tengo una tabla hecha, donde guardo una serie de preguntas, el campo id, se tiene que autogenerar de la siguiente manera, tres Letras y 5 Numeros. ¿como podria hacerlo?

muchisimas 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
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:id automatico y especifico

Publicado por Isaias (4558 intervenciones) el 08/11/2010 22:12:10
¿Nos puedes dar un ejemplo?
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:id automatico y especifico

Publicado por David (7 intervenciones) el 08/11/2010 22:14:48
bueno mas que ejemplo, solo pregunto si hay una manera de automatizar la creacion de estos ids, serian cerca de 5000 id's. Si se puede hacer desde sql(2005) directamente o tngo q crear algun procedure o alguna historia...

ejemplo id: 123GFRED
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
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:id automatico y especifico

Publicado por Isaias (4558 intervenciones) el 08/11/2010 22:53:15
Lo que debes definir es la METODOLOGIA para la asignacion de dichos caracteres.
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
sin imagen de perfil
Val: 4
Ha disminuido su posición en 43 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:id automatico y especifico

Publicado por Leonardo Josué (79 intervenciones) el 09/11/2010 22:52:38
Buenas tardes David.... encontré este ejemplo para generar números aleatorios entre un rango...

se me ocurre que generes números entre 65 y 90 y los conviertas a su valor ASCII para obtener una letra y entre 0 y 9 para obtener un número. El ejemplo quedaría más o menos así:

SELECT
CAST(ROUND((9 * RAND()), 0) AS VARCHAR)+
CAST(ROUND((9 * RAND()), 0) AS VARCHAR)+
CAST(ROUND((9 * RAND()), 0) AS VARCHAR)+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0))

Es cuestión de que revises si esto te puede servir.

Saludos
Leo.
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:id automatico y especifico

Publicado por David (7 intervenciones) el 11/11/2010 15:22:35
Hola! gracias por las respuestas, sobretodo la de Leonardo, era justamente lo que queria. Muchisimas gracias! y un Saludo!
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:id automatico y especifico

Publicado por David (7 intervenciones) el 11/11/2010 15:28:07
Una ultima duda, como podria generar 5000 veces este select, para generar 5000 codigos a la vez,,,luego haria un insert..
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
sin imagen de perfil
Val: 4
Ha disminuido su posición en 43 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:id automatico y especifico

Publicado por Leonardo Josué (79 intervenciones) el 11/11/2010 21:16:24
Para repetir un proceso puedes hacer uso de un bucle o ciclo tipo WHILE, te recomiendo que leas un poco más a cerca de esto... y también te recuerdo que puedes utilizar las funciones directamente dentro de una sentencia insert:

declare @Tabla table (id varchar(8))
declare @Contador int
set @Contador = 1;
while @Contador < 10
begin
insert into @Tabla values (
CAST(ROUND((9 * RAND()), 0) AS VARCHAR)+
CAST(ROUND((9 * RAND()), 0) AS VARCHAR)+
CAST(ROUND((9 * RAND()), 0) AS VARCHAR)+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0))+
CHAR(ROUND((25 * RAND() + 65), 0)))
set @Contador = @Contador + 1
end
select * from @Tabla

Saludos
Leo
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