Cyn*_*hia 2 t-sql sql-server sql-server-2005 insert default-value
这是我的脚本:
INSERT INTO
AP09
SELECT
cds AS CDSCODE
FROM
P_Schools
WHERE
active = 1;
Run Code Online (Sandbox Code Playgroud)
AP09表中有十列.除主键(CDSCODE)之外的所有键都可以为空.我只想从另一个表插入CDSCODE,其余的默认为null.相反,我得到一个错误:
SQL Server Database Error: Insert Error: Column name or number of supplied values does not match table definition.
Run Code Online (Sandbox Code Playgroud)
如果我提供正确数量的空值,则插入有效.但是Microsoft文档说(对于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.
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么这似乎不像宣传的那样工作?这花费了我很多时间,因为我必须为许多表做这个!(这是SQL Server 2005 BTW)
由于表格 AP09并CDSCODE没有相同数量的列...您需要指定要插入的列.尝试这样的事情 -
INSERT INTO
AP09 (Col1)
SELECT
cds AS CDSCODE
FROM
P_Schools
WHERE
active = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22732 次 |
| 最近记录: |