是否有包含重构的SQL Server的IDE?例如,如果我在表上有一个复合主键,并且我更改了它,sql管理工作室将删除引用此主键的所有外键(它将首先发出警告)。是否有一种工具为外键生成DROP语句并重新创建它们?用于重构的Sql server ide
0
A
回答
1
我建议在VS2010中查看数据库项目类型,如果还没有的话。它具有很多使数据库重构比使用SQL Server Management Studio更容易的功能。
例如,它会进行很多构建时验证,以确保您的数据库对象不会引用不再存在的对象。例如,如果您重命名列,它会为引用旧列名的FK生成错误。此外,它具有非常方便的“比较”功能,比较数据库项目脚本&数据库,生成DIFF报告,并生成脚本以在两者之间移动所选更改(无论是DB项目还是SQL Server,反之亦然)。
我不确定它会自动处理您的组合键示例 - 换句话说,当您重命名列时,它不会修复整个项目中对该列的所有引用。但是,由于所有数据库对象都保存在项目中的脚本中,因此列重命名只是搜索&替换操作。同样,如果你犯了一个错误,你将在验证数据库结构时收到构建错误。因此,至少可以轻松找到需要更改的地点。
这里可能有更强大的工具(我听说过关于redgate的好东西),但VS2010对数据库项目类型的支持是相当不错的。
0
你的对象处理外键引用的方式是在创建表/约束时。 ON DELETE CASCADE只能是一种选择。您也可以将其设置为NULL或默认值。
除非我误解你的问题,它不是环境,而是指示这个的对象参数。
2
我想看看SQLDeveloper product from redgate。他们在其SQL提示产品中提供了一些重构功能。还要看看SQL比较工具。两者都值得每一分钱。
相关问题
- 1. 用于SQL Server架构
- 2. SQL Server IDE /管理器
- 3. 用于Java的SQL Server库
- 4. 用于SQL Server 2000的SQL Sever Management Studio
- 5. Lombok项目中的IDE重构支持
- 6. 适用于SQL Server的Windows Azure开发结构配置
- 7. 用于存储大量图像的SQL Server表结构
- 8. 用于Processing.js的IDE
- 9. SQL Server使用类似于
- 10. 在sql server中重命名/重构udf参数
- 11. 重复在SQL Server
- 12. 重写SQL Server Maxrecursion?
- 13. 如何使用SQL Server视图和架构?基于线程
- 14. 用于SQL Server的Debug.Assert的等价物
- 15. 用于SQL的类似Visual Studio的重构工具
- 16. 重复的值在SQL Server
- 17. SQL Server的重复行
- 18. 重构SQL
- 19. 其中MS IDE用于VB.net
- 20. 相当于SP的SQL Server
- 21. 相当于DBMS_METADATA.GET_DDL的SQL Server
- 22. 用于SQL Server和Oracle的LINQ to Entities
- 23. 用于SQL Server的StyleCop等价物?
- 24. 用于Rails的SQL Server适配器
- 25. 用于Xml路径的SQL Server
- 26. 可选地用于SQL Server中的XML
- 27. 用于Delphi和C的SQL Server层#
- 28. 用于SQL Server建模的Sparx Enterprise Architect?
- 29. 用于XML语法的SQL SERVER
- 30. 用于UNC路径的SQL Server备份
可悲的是,没有数据库比较工具可以处理重构 - 只是不可能,它永远不知道它是重命名还是丢失/新列。这就是手动创建的三角洲脚本,例如100到101,101到102等。我喜欢数据库项目,但是迁移并不是他们将要处理的事情,这需要人工智能和AI注意为什么程序员会这样做变化。 – TomTom
TomTom是对的。大多数重构不能被工具第二次猜测。然而,在Red Gate,我们正在开发一个功能SQL Migrations,它允许将自定义脚本添加到工具的整体知识中,从而产生更准确的脚本。这在这里有更详细的描述:http://weblogs.sqlteam.com/markc/archive/2011/08/08/sql-source-control-and-custom-change-scripts.aspx –