Procedimiento almacenado para INSERT

13/02/2004 - 01:52 por Gregorio López Rojo | Informe spam
Hola a todos. Estoy diseñando un procedimiento almacenado para insertar
valores en una tabla y es el siguiente:

create procedure spInsertToPartes
@NumParte varchar(50) = NULL,
@DescEsp varchar(150) = NULL,
@DescIng varchar(150) = NULL,
@ipGenero int = NULL,
@idParte int OUTPUT
as
insert into partes
(NumParte, DescEsp, DescIng, ipGenero)
values
(@NumParte, @DescEsp, @DescIng, @ipGenero)

select @idParte = SCOPE_IDENTITY()

Hasta aquí todo bien, pero quiero mejorar este procedimiento para que los
campos que no se especifiquen en la ejecución del procedimiento tengan en
lugar de NULL
el DEFAULT para dichos campos, ¿cómo sería esto?

Saludos y gracias anticipadas.
 

Leer las respuestas

#1 Maximiliano Damian Accotto
13/02/2004 - 03:04 | Informe spam
lo que se me ocurre es que uses IF y por cada condicion hagas un insert u
otro, sino deberias ver el uso de SqlDinamico algo asi como:

create table maxi45 (id int identity, pais varchar(50) default('arg'))
Go

declare @pais varchar(50)
declare @string as nvarchar(255)

set @pais = null

set @string = 'insert into maxi45 (pais)' +
+ case when @pais is null then ' values(default)' else 'values (''' +
@pais + ''')' end

EXECUTE sp_executesql @string

select * from maxi45


probalo y me decis si te es util

Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
"Gregorio López Rojo" escribió en el mensaje
news:
Hola a todos. Estoy diseñando un procedimiento almacenado para insertar
valores en una tabla y es el siguiente:

create procedure spInsertToPartes
@NumParte varchar(50) = NULL,
@DescEsp varchar(150) = NULL,
@DescIng varchar(150) = NULL,
@ipGenero int = NULL,
@idParte int OUTPUT
as
insert into partes
(NumParte, DescEsp, DescIng, ipGenero)
values
(@NumParte, @DescEsp, @DescIng, @ipGenero)

select @idParte = SCOPE_IDENTITY()

Hasta aquí todo bien, pero quiero mejorar este procedimiento para que los
campos que no se especifiquen en la ejecución del procedimiento tengan en
lugar de NULL
el DEFAULT para dichos campos, ¿cómo sería esto?

Saludos y gracias anticipadas.


Preguntas similares