晚安,
我创建了以下存储过程:
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
当我执行AddQuote时,收到错误声明:
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.
我知道我已将Qty字段设置为不允许空值并希望继续这样做。但是,我是否应该进行其他语法更改以确保此sproc正常工作?
谢谢, SID
答案 0 :(得分:1)
在我看来,您忘记为OrderDetail表的ID列启用“身份规范”。它与您的存储过程本身无关。
您需要重新创建表以使ID列具有IDENTITY
,但SQL Management Studio将为您编写脚本。
答案 1 :(得分:1)
所以