sql – 重命名列而不破坏脚本和存储过程

前端之家收集整理的这篇文章主要介绍了sql – 重命名列而不破坏脚本和存储过程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将列名修改为表中的新名称

但这里有问题我想手动修改Triggers或SP中的列名.

有没有更好的方法来做到这一点.

要使用此重命名

sp_RENAME 'Tablename.old_Column','new_column','COLUMN';

同样,我怎么能为触发器或SP做它.没有打开每个脚本?

解决方法

好吧,有一堆第三方工具承诺这种类型的“安全重命名”,有些是免费的,有些则不是:

> Apexsql有一个free tool,正如MWillemse在他的回答中所写,
> RedGate有一个名为SQLPrompt的商业工具,它也有一个安全的重命名物品,但它远非免费.
> Dan Guzman在他的评论中写道,微软有一个名为SQL Server Data Tools的视觉工作室插件(或短版本的SSDT).

我不得不说我从未尝试过这些特定工​​具的任何特定工具,但我确实对SSDT和RedGate的一些产品有一些经验,我认为它们是非常好的工具.我对Apexsql一无所知.

另一种选择是自己尝试编写sql脚本.但是在开始之前需要考虑以下几点:

>您的表可以直接从sql服务器外部访问吗?我的意思是,有些软件可能直接在该表上执行sql语句吗?如果是这样,您可能会在重命名该列时将其中断,并且在这种情况下没有sql工具可以提供帮助.
>你的sql脚本技巧真的那么好吗?我认为自己对sql server有相当的经验,但我认为编写这样的脚本超出了我的技能.并不是说我不可能,但是我可能需要花费太多的时间和精力来获得免费的东西.

如果您决定自己编写,有一些文章可以帮助您完成该任务:

首先,微软官方文档sys.sql_expression_dependencies.
第二,一篇名为Different Ways to Find SQL Server Object Dependencies文章,由DBA经历了13年的经验,
最后但并非最不重要的,a related question在StackExchange的数据库管理员网站上.

当然,你可以采用Gordon Linoff在评论中提出的安全方式,或者在他的回答中使用像目标数据这样的同义词,但是你必须手动修改所有列依赖关系,并从我理解的内容,这就是你想要避免的.

猜你在找的MsSQL相关文章