2016-09-20 1 views
-3
나는 SKU 테이블 SKU_DATA에 행 삽입 할 수있는 방법은 SQL 서버 를 들어

database diagramSQL-SERVER 절차 내가 행을 삽입하려면 어떻게해야 하나 개의 테이블이 다음 외래 키

같은 다른 테이블에 다른 테이블 링크에 행을 삽입 한 후 삽입 SKU를 INVENTORY 테이블로 분기하고 손에 수량 = 2, Quantityonhand = 0으로 설정합니다.

나는 Quantityonhand = 2 Quantityonhand는 = 0

감사 도와주세요 SKUDATA으로 SKU 항목을 삽입해야하고 기존의 모든 지점에 대한 인벤토리 테이블에 행을 해당

지점

name varchar (30) not NULL, 
managerNum INT NOT NULL, 

SKU_DATA

SKU Int NOT NULL IDENTITY (1000,1), 
description varchar (40) NOT NULL UNIQUE, 
department varchar(30) NOT NULL default 'Home Entertainment', 
sellingPrice numeric (7,2) NOT NULL , 

INVENTORY

SKU Int NOT NULL, 
branch varchar (30) NOT NULL , 
quantityOnHand Int NOT NUll , 
quantityOnOrder Int NOT NUll , 

절차 :

Create procedure InsertNewSkuWithInventory 
    @description varchar (40), 
    @department varchar(30), 
    @sellingPrice numeric (7,2), 
AS 
    Declare @rowcount as int 
    Declare @SKU as int 
    Declare @branch as varchar(30) 

    Select @rowcount = COUNT(*) 
    from dbo.SKU_DATA 
    Where description = @description 
     And department = @department 
     And sellingPrice = @sellingPrice; 

BEGIN 
    INSERT INTO dbo.SKU_DATA (description, department, sellingPrice) 
    VALUES (@description, @department, @sellingPrice); 

    Select @SKU =SKU 
    From dbo.SKU_DATA 
    Where description = @description 
     And department = @department 
     And sellingPrice = @sellingPrice; 

    DECLARE SKUCursor CURSOR FOR 
     SET @branch = @@IDENTITY 

     Select SKU 
     From dbo.inventory 
     Where 

    CLOSE SKUCursor 
    DEALLOCATE SKUCursor 
END 
+1

읽어 보시기 바랍니다 [방법에-하는 질문 ** **] 여기 (http://stackoverflow.com/help/how-to-ask) \t \t 그리고는 [에 좋은 장소입니다 ** START ** ] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) 질문 품질을 향상시키고 더 나은 답변을 얻는 방법을 배우십시오. –

+0

[Transaction] (https://msdn.microsoft.com/en-us/library/ms188929.aspx) –

+0

어떤 RDBMS입니까? 태그를 추가하여 mysql, postgresql, sql-server, oracle 또는 db2 중 어느 것을 사용하는지 지정하십시오. –

답변

0

여기에 두 가지 문제가있다 : 첫째, 어떻게 SKU_DATA 테이블에 새로 삽입 된 행에 대해 생성 된 IDENTITY 값을 얻기 위해, 재고 테이블에 두 번째, 어떻게 하나의 행 각 지점마다.

SKU_DATA에 단 하나의 행을 삽입하는 경우 scope_identity() 함수를 사용하십시오 (@@ IDENTITY!를 사용하지 마십시오). 이처럼 :

INSERT INTO dbo.SKU_DATA (description, department, sellingPrice) 
VALUES (@description, @department, @sellingPrice); 
set @SKU = scope_identity() 

은 그럼 당신은 BRANCH 테이블에서 선택하여 인벤토리에 삽입 않습니다

insert dbo.INVENTORY (SKU, branch, quantityOnHand, quantityOnOrder) 
select @SKU, b.name, 2, 0 
from dbo.Branch b 

당신이에서 완벽한 솔루션을 해결할 수 있기를 바랍니다.

관련 문제