【发布时间】:2011-05-13 23:46:06
【问题描述】:
这是我的脚本:
INSERT INTO
AP09
SELECT
cds AS CDSCODE
FROM
P_Schools
WHERE
active = 1;
AP09 表中有十列。除了主键 (CDSCODE) 之外的所有键都可以为空。我只想从另一个表中插入 CDSCODE,其余的默认为空。相反,我得到一个错误:
SQL Server Database Error: Insert Error: Column name or number of supplied values does not match table definition.
如果我提供正确数量的空值,则插入工作。但是微软文档说(对于 INSERT 命令):
The Database Engine automatically provides a value for the column if the column:
--Has an IDENTITY property. The next incremental identity value is used.
--Has a default. The default value for the column is used.
--Has a timestamp data type. The current timestamp value is used.
--Is nullable. A null value is used.
--Is a computed column. The calculated value is used.
有人知道为什么这似乎不像宣传的那样有效吗?这花费了我很多时间,因为我必须为许多桌子这样做! (顺便说一句,这是 SQL Server 2005)
【问题讨论】:
标签: sql-server sql-server-2005 tsql insert default-value