如何将SQL Server数据库上载到共享托管环境?

Pet*_*ras 5 sql database upload

在将开发SQL 2005数据库移至网站托管公司的共享Web服务器上时,我们遇到一个常见问题。

理想情况下,我们想要一个将数据库结构和数据作为精确副本进行传输的系统。

通常可以通过还原备份来实现。但是,因为它们是共享的SQL服务器,所以我们无法还原备份–我们没有访问实际计算机的权限。

我们可以生成一个脚本来创建数据库结构,但是之后就无法通过菜单项“任务/导入数据”进行数据传输,因为在导入表时会违反外键约束,因为导入表的顺序与数据库模式冲突。此外,如果将索引设置为自动生成,则可能无法复制。

因此,我们将面临一个混乱的操作:

  1. 在SQL 2005中创建一个脚本,该脚本以SQL 2000格式生成数据库。
  2. 运行脚本以在SQL 2000中创建一个SQL 2000数据库。
  3. 在SQL 2000中创建一个脚本,该脚本生成没有索引和外键的数据库结构。
  4. 在生产服务器上运行此脚本。您现在有了一个数据库结构,可以将数据上传到该数据库。
  5. 使用SQL 2005将数据与任务/导入数据一起传输到生产服务器。
  6. 使用SQL 2000生成一个使用索引和键创建数据库的脚本。
  7. 复制仅生成索引和外键的命令。这些位于表创建命令之后。注意:在SQL 2005中,索引和外键是作为一个生成的,因此不能轻易分开。
  8. 在生产数据库上运行此脚本。

瞧!上载了所有数据和键/约束的数据库。多么混乱和容易出错的系统。

有更好的东西吗?

Gul*_*zim 4

Scott Gu 就这个主题写了几篇文章:

用于 Web 托管的 SQL Server 数据库发布工具包