2017-06-13 49 views
0

我在SQL服务器中插入存储过程时遇到以下问题。 我想以后如果语句在插入语句后插入多个表

BEGIN 
insert into BIJDRAGE VALUES(@accountID, @datum, @soort); 

DECLARE @bijdrageid int; 
SET @bijdrageid = (SELECT MAX(id) FROM BIJDRAGE) 

if (@soort ='bericht') 

insert into BERICHT values (@bijdrageid, @titel, @inhoud) 
insert into BIJDRAGE_BERICHT values (@id, @bijdrageid); 

/////////This above doesnt work\\\\\\\\\\\\\\\\ 

else if @soort= 'bestand' insert into BESTAND values ((select max(id) from BIJDRAGE), @categorieID, @bestandsLocatie, @grootte) 


else insert into CATEGORIE values((select max(id) from BIJDRAGE), @categorieID, @naam) 
END 
+0

你得到什么错误讯息? – dbajtr

+0

我假设所有变量(除了bijdrageid)都被传递给存储过程。你收到什么错误信息? – Simon

+0

消息156,级别15,状态1,过程CreateNew,行14 [批次开始行7] 关键字'else'附近的语法不正确。 –

回答

4

试试这个插入多个表中的东西:

BEGIN 
    DECLARE @bijdrageid int 
    insert into BIJDRAGE VALUES(@accountID, @datum, @soort) 

    SELECT @bijdrageid = MAX(id) 
    FROM BIJDRAGE 

    IF(@soort ='bericht') 
    BEGIN 

    insert into BERICHT values (@bijdrageid, @titel, @inhoud) 

    insert into BIJDRAGE_BERICHT values (@id, @bijdrageid) 

    END 
    ELSE 
    BEGIN 
     IF @soort= 'bestand' 
     BEGIN 
      insert into BESTAND values (@bijdrageid, @categorieID, @bestandsLocatie, @grootte) 
     END 
     ELSE 
     BEGIN 
      insert into CATEGORIE values(@bijdrageid, @categorieID, @naam) 
     END 
    END 
END