为什么会这个查询
SELECT * FROM Vendors
INSERT INTO Vendors
(Name, Description, StartDate, RatePerHour, Currency, Coverage, Website)
VALUES
('Any','Any','12/6/2013','36.00','Any','Any','Any');
导致此消息失败
Msg 515,Level 16,State 2,Line 6
无法将值NULL插入列'VendorClassificationID',表'VendorScorecard.dbo.Vendors';列不允许空值。 INSERT失败。
答案 0 :(得分:3)
您的INSERT语句告诉SQL。
向Vendors表添加一行。
我只想填充一些列(我列出的那些列),所以我希望你填充其他列。使用NULL或列DEFAULT(如果存在)填充它们。
所以SQL尝试,找到一个不喜欢NULL的列(VendorClassificationID),礼貌地告诉你,“不能做......”
正如Aaron指出的那样,也可能涉及触发器
答案 1 :(得分:2)
检查Vendors
表的TABLE定义。 COLUMN VendorClassificationID
很可能是NOT NULL
列。
换句话说,要解决此问题,您必须在上面的VendorClassificationID
声明中提供INSERT
。
答案 2 :(得分:2)
让我们看一下错误信息。
Msg 515,Level 16,State 2,Line 6
无法将值NULL插入“VendorClassificationID”列,表'VendorScorecard.dbo.Vendors';列不允许空值。
INSERT失败。
哇,我做的部分粗体非常有说服力。显然,VendorClassificationID
列不能是NULL
,所以让我们调整查询。
SELECT * FROM Vendors
INSERT INTO Vendors
(VendorClassificationID, Name, Description, StartDate, RatePerHour, Currency, Coverage, Website)
VALUES
(1, 'Any', 'Any', '12/6/2013', '36.00', 'Any', 'Any', 'Any');
完成。
当然,数字1可以用你想要的任何值代替。
答案 3 :(得分:0)
您没有在供应商
中指定{NULL}列的VendorClassificationID