我在数据库中的表中添加了新列。我没有更改代码来插入此新列,而是尝试创建此新列以在插入时具有默认值。
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)
如何让插入操作忽略新列,而仅在每次添加新行时让新列插入默认数据?
答案 0 :(得分:3)
这听起来有点激进,但是您可以执行以下操作:
Voila!该视图将是可更新的,并且旧代码应该可以使用。
注意:如果insert
具有明确的列列表,则永远不会发生此问题。您应该修复代码以及解决问题。