我将列添加为表
RedMarkItemsId (IDENTITY(1,1) NOT NULL PRIMARY KEY)
TaskId (UNIQUEIDENTIFIER)
CreationDate (DATETIME)
CreatedBy (UNIQUEIDENTIFIER)
我想创建像这样的列
ALTER TABLE RedMarkItems ADD Item1 BIT DEFAULT(0)
但是当我尝试插入一些值时:
INSERT INTO RedMarkItems
VALUES (
'9B093907-2072-4F59-A55C-0003CE89EF9E',
GETDATE(),
'6074CAEA-7A8E-4699-9451-16C2EAF394EF')
它引发错误:
列名或提供的值数与表定义不匹配。
如果将DEFAULT(0)
设置为该新列,为什么会出现此错误?
表创建脚本:
CREATE TABLE RedMarkItems
(
RedMarkItemsId INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
TaskId UNIQUEIDENTIFIER,
CreationDate DATETIME,
CreatedBy UNIQUEIDENTIFIER
)
答案 0 :(得分:8)
这条SQL无效:
INSERT INTO RedMarkItems
VALUES (
'9B093907-2072-4F59-A55C-0003CE89EF9E',
GETDATE(),
'6074CAEA-7A8E-4699-9451-16C2EAF394EF')
不提供所有要插入的列时,需要显式指定目标列。由于仅分配3列,因此您可能需要:
INSERT INTO RedMarkItems(
RedMarkItemsId,
TaskId,
CreationDate
) VALUES (
'9B093907-2072-4F59-A55C-0003CE89EF9E',
GETDATE(),
'6074CAEA-7A8E-4699-9451-16C2EAF394EF'
);