【发布时间】:2012-04-20 19:44:11
【问题描述】:
我将向现有表添加一个可为空的列。有哪些可能的影响以及如何避免?
我打算留意 SELECT *。 还有什么要注意的?
【问题讨论】:
-
其含义类似于具有默认值的不可为空的列(除了显而易见的 - 新列返回值而不是空值)
-
至于“选择 *”,您还可以有“插入表值”语句而无需列规范
标签: sql-server ddl
我将向现有表添加一个可为空的列。有哪些可能的影响以及如何避免?
我打算留意 SELECT *。 还有什么要注意的?
【问题讨论】:
标签: sql-server ddl
也取决于列的位置,如果您正在这样做:
INSERT INTO <table> SELECT *
那么您可能将数据插入到错误的列中。
【讨论】:
作为查询的一部分返回的可能已经具有相同列名的联接可能会成为问题。
例如,假设我们有一个表“Client”,其中有一列“ZipCode”,还有一个名为“Contractor”的表,您可以在其中添加“ZipCode”。具体来说,如果已编写查询以“按 ZipCode 排序”连接两个表,则 ZipCode 不明确。您的查询现在将失败。 "order by Client.ZipCode" 可以避免这个问题。
【讨论】: