我已将新列添加到数据库的表中。我没有更改代码来插入这个新列,而是尝试创建这个新列以在插入时具有默认值。
ALTER TABLE myTableName
ADD DateColumn SMALLDATETIME DEFAULT GetDate()
DECLARE @Dates SMALLDATETIME
SET @Dates = GetDate()
UPDATE myTableName
SET DateColumn = @Dates
ALTER COLUMN DateColumn SMALLDATETIME NOT NULL
问题是我收到上面的错误,因为有 13 列,并且多年未触及的代码仅插入 12 列,并且它们不明确(例如
Insert into table ColumnNames Values(values))
这只是简单的
insert into table Values (xxx, xxx ,xxx)
如何让插入忽略新列,并在每次添加新行时让新列插入默认数据?
最佳答案
这听起来有点激进,但您可以执行以下操作:
- 将表重命名为新名称
- 使用旧名称但不包含新列创建 View
瞧! View 将是可更新的,旧代码应该可以工作。
注意:如果 insert
有明确的列列表,则永远不会发生此问题。您应该致力于修复代码并解决问题。
关于c# - 列名称或提供的值的数量与表定义不匹配。默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51273666/