0
저장 프로 시저를 사용하여 표에 데이터를 삽입하는 데 문제가 있습니다. 이 절차와 다른 프로그래머가 작성한 곳을 사용해야합니다.자동으로 표 삽입
이 절차를 통해 주문을 데이터베이스에 삽입 할 수 있습니다. 나는 여러 속성을 프로 시저에 전달하고 모든 것이 잘됩니다. 주문 테이블에는 costumer ID가있는 열이 있습니다.
주문 테이블에 새 행을 삽입하면 배송 주소가 고객 테이블의 데이터로 덮어 씁니다. 절차는 이와 같은 것을 만들지 않습니다. 주문 표에 수동 삽입을 쓰면 배송 주소가 허용됩니다.
새 주문을 삽입 할 때 자동으로 고객 정보를 얻는 숨겨진 절차가있을 수 있습니까?
USE [EHS]
GO
/****** Object: StoredProcedure [dbo].[SP_INTERNETAUFTRAGE] Script Date: 10/07/2013 12:21:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_INTERNETAUFTRAGE]
@Akcija int = 1,
/*
Many more attributes
*/
@p6 money = NULL,
@rezultat int = 0 OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @brojac int
SET @brojac = 0
DECLARE @TypName nvarchar(30)
DECLARE @firmC int
DECLARE @gespert bit
DECLARE @letzeAufNr int
DECLARE @letzeRechNr int
SET @gespert=0
SELECT @TypName = [Name], @letzeAufNr = letzteAufNr, @gespert = gesperrt FROM dbo.T_letzteAufNr WHERE [email protected] AND Jahr=Year(GETDATE())
SET @firmC=(@Typ-1)/10
IF (@firmC=3)
BEGIN
SET @firmC=4
END
IF (@Akcija=1)
BEGIN
IF (@gespert=0)
BEGIN
DECLARE @AufNrNew nvarchar(10)
DECLARE @AufNrN int
SET @AufNrNew =CAST(@Typ AS nvarchar(2)) + Right(CAST(Year(GETDATE()) AS nvarchar(4)), 2) + Right('0000' + CAST((@letzeAufNr + 1) as nvarchar(10)), 5)
SET @AufNrN = CAST(@AufNrNew AS int)
PRINT @RechOrt
INSERT INTO dbo.T_Internetaufträge (rows) VALUES
(values)
INSERT INTO dbo.T_Internetaufträge_Historie (rows) VALUES
(values)
UPDATE dbo.T_letzteAufNr SET letzteAufNr=(@letzeAufNr+1) WHERE [email protected] AND Jahr=Year(GETDATE())
-- UPDATE dbo.T_letzteAufNr SET gesperrt=0 WHERE [email protected] AND Jahr=Year(GETDATE())
UPDATE T_Kunden SET FirmaCust=FirmaCust |@firmC WHERE [email protected]
SET @[email protected]
return @rezultat
END ELSE BEGIN
SET @rezultat=-3 /*GESPERT*/
return -3
END
END ELSE BEGIN
PRINT 'UPDATE'
UPDATE dbo.T_Internetaufträge SET rows=values /* many more */ WHERE AufNr = @AufNr
INSERT INTO dbo.T_Internetaufträge_Historie (rows) VALUES
(values)
END
SET @rezultat = 0
return 0
END
orders 테이블의 삽입 트리거는 무엇입니까? –
데이터베이스에 작성된 트리거 일 수 있습니다. 이들은 삽입/업데이트/삭제와 같은 DB 이벤트에서 자동으로 실행되도록 지시 할 수있는 절차입니다. – asantaballa
Microsof SQL Management Studio는이 데이터베이스에 트리거를 표시하지 않습니다. – alex