我正在使用DatabasePublishingWizard生成一个包含数据和架构的大型创建脚本。它产生的文件是巨大的,因此打开脚本来修复任何语法错误几乎是不可能的,而且小于4gb的机器很难让它运行!我该怎么办,怎么办呢?感谢大家提供的任何帮助。
答案 0 :(得分:4)
使用数据库发布向导,您可以将所有对象创建为单独的文件而不是一个大文件。然后,您可以将所有文件放在源代码管理中并跟踪所有更改。
我当前的项目使用脚本来重新创建用于开发的数据库。该脚本删除所有现有对象,然后使用以下语句为每个目标文件读取它们。
sqlcmd -S%1 -d THRIVEHQ -E -b -i“../Tables/Schema.sql” 如果%ERRORLEVEL%NEQ 0转到错误
答案 1 :(得分:1)
只想添加凯文的评论。将脚本分解为单独的文件然后编写脚本以按执行顺序放置所有文件。
当转储具有大量相互依赖关系的大型数据库作为一个大文件时,对您来说不会有太大好处,因为在大多数情况下,脚本将无法执行而不会出现错误。在我的世界中,我使用命名约定来帮助我快速查看哪些视图依赖于其他视图。例如,如果我有一个只生成数据转储的视图,我会使用类似这样的v_VIEW_NAME_ORIGINATING-TABLE_Dump,那么我会将后缀更改为_weekly或_weekly_Summary,以用于从主转储表派生的视图。
我多年前就吸取了教训,并且在我的所有数据库中都遵循了这个命名模式。
答案 2 :(得分:1)
尝试使用DBSourceTools
http://dbsourcetools.codeplex.com
它会将整个数据库编写为磁盘,每个数据库对象一个文件
使用部署目标,您可以从文件重新创建任何数据库
它专门用于帮助开发人员在源代码控制下获取数据库。
答案 3 :(得分:0)
在我的脑海中,我会说写一个脚本将文件分成多个,并在每个“GO”语句后发生中断。您可以编写另一个脚本来按顺序执行每个已分解的文件。
答案 4 :(得分:0)
我会分步进行。
将所有表格和视图生成为1个脚本。
将所有存储过程和授权生成为1个脚本。
使用DTS或SSIS迁移您的数据。
所有这一切都可以通过MS SQL Server Management Studio实现。