好吧,有很多第三方工具都承诺使用这种类型的“安全重命名”工具,其中一些是免费的,而有些则不是:
- MWillemse在回答中写道,ApexSQL为此提供了一个免费工具
- RedGate有一个称为SQLprompt的商业工具,该工具也具有安全的重命名功能,但是,它远非免费的。
- 正如Dan Guzman在评论中所写的那样,Microsoft有一个称为SQLServer数据工具(简称为SSDT)的可视工作室加载项。
我不得不说我从未针对这些特定任务尝试过任何这些特定工具,但是我确实对SSDT和RedGate的某些产品有一定的经验,我认为它们是非常好的工具。我对ApexSQL一无所知。
另一个选择是尝试自己编写sql脚本,但是在开始之前要考虑以下两点:
- 可以直接从sql server外部访问您的表吗?我的意思是,是否有可能某些软件直接在该表上执行sql语句?如果是这样,则在重命名该列时可能会破坏它,并且在这种情况下没有SQL工具会有所帮助。
- 您的sql脚本编写技能真的那么好吗?我认为自己对sql Server有相当的经验,但是我认为编写这样的脚本超出了我的技能范围。并非对我来说这是不可能的,但我可能会花太多时间和精力才能免费获得某些东西。
如果您决定自己编写它,那么有一些文章可能会帮助您完成该任务:
首先,是sys.sql_expression_dependencies的Microsoft官方文档。
其次,由13年经验的DBA撰写的一篇名为《寻找SQL
Server对象依赖关系的不同方法》的文章,最后但并非最不重要的一点,是StackExchange数据库管理员网站上的一个相关问题。
当然,您可以采用Gordon Linoff在他的注释中建议的安全方式,或者使用他的答案中建议的诸如destination-
data之类的同义词,但是随后您将不得不手动修改所有列依赖关系,并且据我所知,这就是您要避免的事情。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)