重命名表列并将其传播到从属视图

Rob*_*Rob 3 sql sql-server

如果我们要改变名称MyColumnName,以MyAlteredColumnName...

...我们有一个SQL Server 2008表,看起来像:

MyTable
  MyColumnName
Run Code Online (Sandbox Code Playgroud)

以及引用基础列的视图:

CREATE VIEW MyDependentView WITH SCHEMABINDING
AS
SELECT ..., MyTable.MyColumnName
Run Code Online (Sandbox Code Playgroud)

我们最终遵循此程序:

  1. 放弃视图
  2. 将MyTable.MyColumnName更改为MyTable.MyAlteredColumnName
  3. 通过引用MyAlteredColumnName重新创建视图

我们使用migrator dot net执行此操作.

有一个更好的方法吗?是否有T-SQL会改变视图列名?或者SQL Server 2008中的任何支持可以自动将列绑定在一起?

Tho*_*mas 5

如果不使用第三方工具,这是执行此操作的唯一方法之一.显然,您也可以使用ALTER VIEW而不是DROP和CREATE.

应该注意的是,Red-Gate创建了一个名为SQL Refactor的工具,它将自动化这种变化(不,我不为它们工作).我确信还有其他类似的数据库重构工具.