向表中添加唯一键/索引及其对现有记录的影响

时间:2013-12-11 10:07:38

标签: sql sql-server-2008-r2 indexing unique-key

到目前为止,我有一张表没有唯一的密钥。这个表工作正常,但插入/更新/删除程序的代码有点不可读,因为识别表中正确条目的条件越来越长,所以我开始考虑添加一个带有唯一ID的新列

已经回答了有关在SO上向表添加唯一标识的问题,但我想知道它是否会对当前存在的记录产生任何负面影响。表本身并不大,它从来没有超过几千个条目,但它经常被使用和更新,并且停止使用它不是一件容易的事。那么有什么我应该知道的可能会弄乱数据,或者我可以高兴地添加一个具有唯一标识的列,一切都会正常工作吗?当前存在的存储过程是否存在任何问题,尤其是那些改变记录的存储过程?说实话,我想不出任何事情,但我宁愿确定,因为我远没有体验过SQL和数据库。

将索引添加到已存在的表中也是如此 - 我想会有一些转移涉及,所以对记录有任何负面影响吗?

如果您需要我提到的过程的示例,只需考虑简单的插入/删除/更新语句,并在where子句中使用不必要的长度。没有与其他表连接,在单个过程中没有多个事务。

1 个答案:

答案 0 :(得分:1)

添加列或更改索引不会影响当前数据。

但代码可能会受到影响。

  1. SELECT *现在会返回更多列。
  2. 列顺序可能会根据您添加列的位置而更改。
  3. 有人可能INSERT没有列列表。那现在会失败。
  4. 性能可能会稍微恶化。如果您的应用依赖于可能存在问题的非常严格的性能标准。我认为这不太可能。
  5. 我确定还有其他人,但这些是我现在能想到的。