在不影响的情况下更改SQL Server表

bln*_*hie 5 database sql-server

我有一个包含大约30列的表,已经在应用程序中广泛使用.即,在存储过程和UDF数量方面,以多种不同的方式(以开发人员认为他们感觉舒适的方式)编写的此表的选择,插入和更新操作.我现在已经完成了扩展表所服务的功能的任务,我需要在表中添加额外的细节(通常可以假设为表的附加列).考虑到它将在其他地方造成的影响,在表格中添加额外的列是一项庞大而低效的任务.

我现在能想到的另一种方法是创建一个新表,其中包含主表的外键并在新表中维护记录.我对此也持怀疑态度.在表的模式中处理这种修改的有效方法是什么?

在需要时使用SQL Server 2000.

编辑:

不幸的是,列不应该接受NULL值.确实错过了这个重要的信息

影响我认为由于已经实施的不良做法可能会发生,

1)"SELECT*"并将一些数据网格直接绑定到前端.(非常非常低)

2)使用"SELECT*"时,使用列号从数据集或数据表中取代而不是前端的列名

3)"插入",使用顺序给出的值而不是列名.

从某种程度上说,如果我可以使列接受"NULL"值(通过稍微调整一下要求)对上述各点的影响?

我对分析现有代码感到怀疑,因为使用此表的SP和函数的数量可能会达到数百个.

Chr*_*all 5

  1. 使用您需要的所有列构建一个新表,并根据需要调用它.
  2. 创建一个视图,将其命名为与旧表相同,并让它返回旧表所用的所有列.
  3. ???
  4. $

(是的,我知道这可能会让维护变得混乱,因为许多DBA使用视图的命名约定:V_Viewname.我从来没有在它是什么类型的对象之后命名一个SQL对象,并且没有看到这样的好处公约)