Procedimiento no me funciona en INSERT, únicamente en UPDATE
Publicado por Marcela Castro (1 intervención) el 30/04/2012 06:24:56
Buenas tengo una duda es que no se que estoy haciendo mal es que es procedimiento no me corre el insert solo el update por favor ayuda no se que esta
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
CREATE DATABASE PR
GO
USE PR
GO
CREATE TABLE A
(
CDProducto VARCHAR(50) NOT NULL,
CDProvedor VARCHAR(50) NOT NULL,
Nombre VARCHAR(50)NOT NULL,
Cantidad INT NOT NULL
CONSTRAINT [PK_Tb_Productos] PRIMARY KEY CLUSTERED
(
CDProducto ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE P
(
CDProvedor VARCHAR(50) NOT NULL,
Nombre VARCHAR(50) NOT NULL
CONSTRAINT [PK_Tb_Provedor] PRIMARY KEY CLUSTERED
(
CDProvedor ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE A WITH NOCHECK
ADD CONSTRAINT FK_Articulo_Producto
FOREIGN KEY (CDProvedor)
REFERENCES P(CDProvedor)
ON UPDATE CASCADE
GO
ALTER TABLE A CHECK CONSTRAINT FK_Articulo_Producto
GO
ALTER procedure SP_A
@CDProducto VARCHAR(50),
@CDProvedor VARCHAR(50),
@Nombre VARCHAR(50),
@Cantidad INT
AS
SET NoCount ON
BEGIN TRY
IF EXISTS (SELECT * FROM [dbo].[P] WHERE CDProvedor = @CDProducto)
UPDATE [dbo].[A]set[CDProducto]=@CDProducto,[CDProvedor]=@CDProvedor,[Nombre]=@Nombre,[Cantidad]=(Cantidad + @Cantidad)where CDProducto= @CDProducto
ELSE
INSERT INTO [dbo].[A] (CDProducto,CDProvedor,Nombre,Cantidad) VALUES (@CDProducto,@CDProvedor,@Nombre,@Cantidad)
END TRY
BEGIN CATCH
PRINT 'SE HA PRODUCIDO UN ERROR'
END CATCH
GO
INSERT INTO P (Nombre,CDProvedor) values ('DR','DR')
GO
EXEC dbo.SP_A 'DR','AR5','Fanta',2
// si ejecuto el prcedimiento no me gauarda los datos
Valora esta pregunta


0