CODIGO GENERADO SIN IDENTITY DENTRO DE UN PROCEDIMIENTO ALMACENADO
Publicado por Karen (1 intervención) el 10/07/2014 05:03:19
Buenas. Estoy haciendo una base de datos pero quiero hacer que el codigo de las tablas al momento de ingresar sean generadas y no ingresadas, ya que el cliente desconocería como es la estructura del codigo.
Ahora estoy probando con una alternativa:
IF OBJECT_ID ('ins_genero_sp') is not null
DROP PROCEDURE ins_genero_sp
GO
CREATE PROCEDURE dbo.ins_genero_sp
(
@nombre nombre,
@usuario usuario
)
AS
BEGIN
DECLARE
@codigo codigo
if exists (
select *
from [dbo].[Genero]
where nombre = @nombre
and usuario = @usuario
)
print 'LOS DATOS YA FUERON INGRESADOS EN LA TABLA GÉNERO!!'
else
INSERT INTO [PELICULAS].[dbo].[Genero]
(codigo,nombre,usuario)
values ((select '00'+convert(char(4),(select count(*) from dbo.Genero))),@nombre,@usuario)
END
EXEC ins_genero_sp 'COMEDIA NEGRA','AMVA'
SELECT *
FROM Genero
/* COMENTARIOS:
ahora el codigo generado debe ser de char (4), pero creo que debo validar cuando mis datos sean
0000-0009
0010-0099
i asi sucesivamente...
--IF (SELECT LEN(@codigo) AS Length FROM Genero) = 1
--(select @codigo = '000'+(select @codigo from dbo.Genero))
--ELSE
--BEGIN
--IF (SELECT LEN(@codigo) AS Length
--FROM Genero) = 2
--BEGIN
--(select @codigo = '00'+(select @codigo from dbo.Genero))
--END
--END
*/
mi pregunta es si existe una alternativa para generar un codigo de forma automatica pero sin utilizar identity... mientras ingreso los datos de "X" tabla. Gracias
Ahora estoy probando con una alternativa:
IF OBJECT_ID ('ins_genero_sp') is not null
DROP PROCEDURE ins_genero_sp
GO
CREATE PROCEDURE dbo.ins_genero_sp
(
@nombre nombre,
@usuario usuario
)
AS
BEGIN
DECLARE
@codigo codigo
if exists (
select *
from [dbo].[Genero]
where nombre = @nombre
and usuario = @usuario
)
print 'LOS DATOS YA FUERON INGRESADOS EN LA TABLA GÉNERO!!'
else
INSERT INTO [PELICULAS].[dbo].[Genero]
(codigo,nombre,usuario)
values ((select '00'+convert(char(4),(select count(*) from dbo.Genero))),@nombre,@usuario)
END
EXEC ins_genero_sp 'COMEDIA NEGRA','AMVA'
SELECT *
FROM Genero
/* COMENTARIOS:
ahora el codigo generado debe ser de char (4), pero creo que debo validar cuando mis datos sean
0000-0009
0010-0099
i asi sucesivamente...
--IF (SELECT LEN(@codigo) AS Length FROM Genero) = 1
--(select @codigo = '000'+(select @codigo from dbo.Genero))
--ELSE
--BEGIN
--IF (SELECT LEN(@codigo) AS Length
--FROM Genero) = 2
--BEGIN
--(select @codigo = '00'+(select @codigo from dbo.Genero))
--END
--END
*/
mi pregunta es si existe una alternativa para generar un codigo de forma automatica pero sin utilizar identity... mientras ingreso los datos de "X" tabla. Gracias
Valora esta pregunta
0