2013-10-07 4 views
0

У меня возникла проблема с вставкой данных в таблицу с помощью хранимой процедуры. Я должен использовать эти процедуры, и они написаны другим программистом.Автоматическая вставка таблицы

с этой процедурой Я могу вставить заказы в базу данных. Я передаю несколько атрибутов процедуре, и все в порядке. в таблице заказов есть столбец с идентификатором заказчика.

Когда я вставляю новую строку в таблицу заказов, адрес доставки перезаписывается данными из таблицы клиентов. Процедура не делает ничего подобного. Если я напишу ручную вставку в таблицу заказов, мой почтовый адрес будет принят.

Возможно ли, что существуют скрытые процедуры, которые автоматически получают информацию о клиенте при вводе нового заказа?

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 
+1

Любой триггер вставки в таблице заказов? –

+0

Может быть триггер, записанный в базе данных. Это те процедуры, которые могут указываться для автоматического запуска событий БД, таких как Вставка/Обновление/Удаление. – asantaballa

+0

Microsof SQL Management Studio не показывает триггер в этой базе данных. – alex

ответ

0

Наконец-то я нашел триггер в другом столе.

Смежные вопросы