2010-05-06 4 views
0

좋은 저녁 모두에멀티 테이블 삽입 오류에 대한 저장 프로 시저 : 열

을 값 널을 삽입 할 수 없습니다 나는했습니다 다음 저장 프로 시저 생성 : 나는 AddQuote을 실행하면

CREATE PROCEDURE AddQuote 
-- Add the parameters for the stored procedure here 

AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON; 
Declare @CompanyName nvarchar(50), 
    @Addr nvarchar(50), 
    @City nvarchar(50), 
    @State nvarchar(2), 
    @Zip nvarchar(5), 
    @NeedDate datetime, 
    @PartNumber float, 
    @Qty int 
-- Insert statements for procedure here 
Insert into dbo.Customers 
(CompanyName, Address, City, State, ZipCode) 
Values (@CompanyName, @Addr, @City, @State, @Zip) 

Insert into dbo.Orders 
(NeedbyDate) 
Values(@NeedDate) 

Insert into dbo.OrderDetail 
(fkPartNumber,Qty) 
Values (@PartNumber,@Qty) 


END 
GO 

, 내가받을를

Msg 515, Level 16, State 2, Procedure AddQuote, Line 31 
Cannot insert the value NULL into column 'ID', table 'Diel_inventory.dbo.OrderDetail'; column does not allow nulls. INSERT fails. 
The statement has been terminated. 

null을 허용하지 않으려면 Qty 필드를 설정 했으므로 계속 진행하기를 원한다는 것을 이해합니다. 그러나,이 sproc가 제대로 작동하는지 확인하기 위해 다른 구문을 변경해야합니까? 당신이 OrderDetail 테이블의 ID 열에 "신원 사양"을 가능하게하는 것을 잊었다처럼

덕분에, 시드

+0

수량에 대해서는 불평하지 않습니다. ID에 대해 불평하고 있습니다. OrderDetail의 ID 열에 기본값이 있습니까? 당신은 가치를 부여하지 않습니다. –

답변

1
  • 당신은 당신은 INSERT에 ID 값을 제공하지 않는

그렇게

  • 변화가 OrderDetail이 값을 제공하는 삽입 OrderDetail 테이블에 ID 열이
  • 또는 해당 열의 ID가
  • 인지 확인하거나 결함이 있는지 확인하십시오. lt (PK 인 경우 유용하지 않지만 일반적으로 옵션입니다.)
+0

그 트릭을 않습니다! 감사:) – SidC

1

나에게 보인다. 그것은 저장 프로 시저 자체와는 아무런 관련이 없습니다.

ID 열이 IDENTITY이되도록 테이블을 다시 만들어야하지만 SQL Management Studio에서이를 스크립팅합니다.