【发布时间】:2014-07-09 01:50:15
【问题描述】:
这是我的表创建:
create table Movie
(
MovieID int NOT NULL IDENTITY (1,1) PRIMARY KEY,
MovieName varchar(40) NOT NULL UNIQUE,
CurrentStock int NOT NULL,
GenreID int NOT NULL,
RatingID int NOT NULL,
Max_Inventory int NOT NULL,
Platforms char(5) NOT NULL,
Discontinued bit,
DiscontinuedDate Date
);
create table Inventory
(
InventoryID int NOT NULL IDENTITY (1,1) PRIMARY KEY,
MovieID int Not NULL,
CurrentStock int NOT NULL,
Max_Inventory int NOT NULL
);
存储过程:
ALTER PROCEDURE [dbo].[InsInventory]
(@CurrentStock int,
@ChangeStock int)
as
begin
insert into Inventory(Max_Inventory, CurrentStock)
Values (@ChangeStock, @CurrentStock)
select SCOPE_IDENTITY();
END
ALTER PROCEDURE [dbo].[InsMovie]
(@GenreID int,
@RatingID int,
@Platform varchar(5),
@MovieName varchar(40)
)
AS
BEGIN
Insert into Movie (RatingID, MovieName, Platforms, GenreID)
Values (@RatingID, @MovieName, @Platform, @GenreID)
select SCOPE_IDENTITY();
SET NOCOUNT ON;
END
外键:
ALTER Table Inventory
ADD CONSTRAINT fk_Inventory_Movie
FOREIGN KEY (MovieID) REFERENCES Movie(MovieID)
ALTER TABLE Movie
ADD CONSTRAINT fk_Movie_RatingLookUp
FOREIGN KEY (RatingID) REFERENCES RatingLookUp(RatingID)
ALTER TABLE Movie
ADD CONSTRAINT fk_Movie_GenreLookUp
FOREIGN KEY (GenreID) REFERENCES GenreLookUp (GenreID)
当我运行我的代码时,我在 Visual Studio 中不断收到错误
MovieID 不能为空
但它应该是当我插入一行时。我还确保手动检查 SQL Server 是否设置了IsIdentity,确实如此。所以请帮助一个困惑的程序员。
【问题讨论】:
-
能否提供您的 INSERT 声明?
-
嗯,它在抱怨 MovieID?您没有设置 currentstock 或 max_inventory 两者都创建为
NOT NULL。 -
请编辑您的原始问题以添加额外的详细信息,而不是将它们放入 cmets
-
让我猜您在 Inventory 表中插入值时遇到“MovieID 不能为空”错误?
-
是的,我可能刚刚想通了,但必须快速调试
标签: sql database sql-server-2008 datatable