【发布时间】:2013-08-12 13:40:54
【问题描述】:
我在 SQL Server 中有一个现有表,其中包含现有条目(实际上超过 100 万个)。
前端应用程序会定期更新、插入和选择此表。我想要/需要添加一个 datetime 列,例如M_DateModified 可以这样更新:
UPDATE Table SET M_DateModified = GETDATE()
每当在前端按下按钮并调用存储过程时。此列将根据要求添加到现有报告中。
我的问题,答案是这样的。作为我们应用程序的核心表之一,ALTERING 表并添加额外的列会破坏其他现有查询吗?显然,如果不为所有列指定所有值,则无法插入表中,因此任何现有的 INSERT 查询都会中断(这是一个大问题)。
对于有关此问题的最佳解决方案的任何帮助将不胜感激。
【问题讨论】:
-
它会破坏设计不良的查询——比如
SELECT * FROM ....或INSERT查询没有明确指定要插入的列列表进入..... -
您说“显然,如果不指定所有列的所有值,您就无法插入到表中”。这不是真的。
-
糟糕,@RBarryYoung 对不起。我的意思是通过简单的插入,您会收到消息“列名或提供的值的数量与表定义不匹配”。例如,如果您只提供 5 个值,而表格需要 7 个?对不起,我的菜鸟,我是新来的:)
-
啊,是的,默认
INSERT。我已经忘记了它,但是因为它相当于使用“*”作为INSERT,所以你不应该那样做(现在你知道为什么了)。明确指定您的列。 -
谢谢,以后会做的:)
标签: c# asp.net sql sql-server