我正在用C#.Net编写一个连接到SQL Server数据库的软件应用程序。我的C#项目受SVN版本控制,但我也希望将我的数据库模式包含在SVN存储库中。答案previous question of mine建议存储脚本以在版本控制中生成数据库。有没有办法从现有数据库自动生成这些脚本?
我是SQL Server的新手,但我注意到在管理工作室中,通过右键单击表并单击“Script Table As”,可以自动生成创建表的SQL命令。是否有与整个数据库一起使用的等效命令?
答案 0 :(得分:4)
您没有提到哪个版本的SQL Server,但在2008年(可能更早),您可以右键单击数据库并选择“任务” - >生成脚本。该向导将引导您完成这些步骤。
答案 1 :(得分:1)
您可以使用SQL-DMO或SQL SMO编写脚本,或使用APEXSQLScript之类的产品(如果您有很多依赖项,那么您将要使用成熟的第3版像这样的派对工具)。
答案 2 :(得分:1)
我们使用Red-gate比较,它允许比较SVN源控制下的文件夹(在专业版中)。提到的Apex工具可能有类似的功能。
就个人而言,我发现SSMS脚本生成器有点笨拙而且更愿意支付Red Gate的东西
答案 3 :(得分:1)
即使没有SSMS中的SQL Agent,您也可以做到这一点。
右键单击您要创建脚本的数据库,以在以下第三个屏幕上为>任务>生成脚本> “高级选项” 导出架构>在“常规”部分的底部具有“要编写脚本的数据类型” ,其中包含“仅数据/架构”和“数据/ 仅架构”。
答案 4 :(得分:0)
我在内置脚本生成方面遇到了麻烦。特别是,尝试从生成的脚本重新创建数据库失败,原因是对象以错误的顺序编写脚本。 (所有的对象都在那里,它只需要重新排序。)
有一个实用程序ExecuteSQLScript可以将您指定的对象类型转储到脚本中。它甚至可以为每个对象创建一个脚本,这对SCM非常有用,因此您可以轻松跟踪对单个对象的更改。