将转换的数据库对象加载到 SQL Server (OracleToSQL)

将 Oracle 架构转换为 SQL Server 后,可以将生成的数据库对象加载到 SQL Server 中。 Microsoft Oracle 的 SQL Server 迁移助手(SSMA)可以创建对象,也可以自行编写对象脚本并运行脚本。 此外,还可以使用 SSMA 将目标元数据更新为 SQL Server 数据库的实际内容。

在同步和脚本之间进行选择

如果要在不修改的情况下将转换的数据库对象加载到 SQL Server 中,SSMA 可以直接创建或重新创建数据库对象。 此方法快速简单,但不允许自定义定义 SQL Server 对象(而非存储过程)的 Transact-SQL 代码。

如果要修改用于创建对象的 Transact-SQL,或者想要更好地控制对象创建,请使用 SSMA 创建脚本。 然后,可以修改这些脚本,单独创建每个对象,甚至使用 SQL Server 代理来计划创建这些对象。

使用 SSMA 将对象与 SQL Server 同步

若要使用 SSMA 创建 SQL Server 数据库对象,请在 SQL Server 元数据资源管理器中选择这些对象,然后将对象与 SQL Server 同步,如以下过程所示。 默认情况下,如果对象已存在于 SQL Server 中,并且 SSMA 元数据比 SQL Server 中的对象更新,则 SSMA 会更改 SQL Server 中的对象定义。 可以通过编辑 项目设置来更改默认行为。

注释

可以选择未从 Oracle 数据库转换的现有 SQL Server 数据库对象。 但是,SSMA 不会重新创建或更改这些对象。

  1. 在 SQL Server 元数据资源管理器中,展开 SQL Server 顶级节点,然后展开 数据库

  2. 选择要处理的对象:

    • 若要同步完整的数据库,请选中数据库名称旁边的复选框。

    • 若要同步或省略单个对象或对象的类别,请选中或清除对象或文件夹旁边的复选框。

  3. 选择要在 SQL Server 元数据资源管理器中处理的对象后,右键单击 “数据库”,然后选择“ 与数据库同步”。

    还可以同步单个对象或对象的类别。 右键单击对象或其父文件夹,然后选择“ 与数据库同步”。

    之后,SSMA 将显示“ 与数据库同步 ”对话框,可在其中看到两组项。 在左侧,SSMA 显示树中表示的所选数据库对象。 在右侧,可以看到一个树,表示 SSMA 元数据中的相同对象。 可以通过选择右侧或左侧 + 按钮来展开树。 同步的方向显示在位于两个树之间的 “Action” 列中。

    动作标志可以处于三种状态:

    • 向左箭头表示元数据内容保存在数据库中(默认值)。

    • 向右箭头表示数据库内容覆盖 SSMA 元数据。

    • 叉号意味着不采取任何行动。

若要更改状态,请选择操作符号。 在“与数据库同步”对话框中选择“确定”按钮时,将执行实际同步。

编写对象脚本

若要保存转换后的数据库对象的 Transact-SQL 定义,或者更改对象定义并自行运行脚本,可以将转换后的数据库对象定义保存到 Transact-SQL 脚本。 请按照以下说明操作:

  1. 选择要保存到脚本的对象后,右键单击 “数据库”,然后选择“ 另存为脚本”。

    还可以编写单个对象或对象类别的脚本。 右键单击对象或其父文件夹,然后选择“ 另存为脚本”。

  2. 在“ 另存为 ”对话框中,找到要保存脚本的文件夹,在“ 文件名”框中 输入文件名,然后选择“ 确定”。 SSMA 追加.sql文件扩展名。

修改脚本

将 SQL Server 对象定义保存为一个或多个脚本后,可以使用 SQL Server Management Studio 查看和修改脚本。 请按照以下说明操作:

  1. 在 SQL Server Management Studio 文件 菜单上,指向 “打开”,然后选择“ 文件”。

  2. “打开 ”对话框中,选择脚本文件,然后选择“ 确定”。

  3. 使用查询编辑器编辑脚本文件。

  4. 若要保存脚本,请在“文件”菜单上选择“保存”。

运行脚本

可以在 SQL Server Management Studio 中运行脚本或单个语句。 请按照以下说明操作:

  1. 在 SQL Server Management Studio 文件 菜单上,指向 “打开”,然后选择“ 文件”。

  2. “打开 ”对话框中,选择脚本文件,然后选择“ 确定”。

  3. 若要运行完整的脚本,请选择 F5 键。

  4. 若要运行一组语句,请在查询编辑器窗口中选择这些语句,然后按 F5 键。

有关如何使用查询编辑器运行脚本的详细信息,请参阅 SQL Server 联机丛书中的“SQL Server Management Studio Transact-SQL 查询”。

还可以使用 sqlcmd 实用工具和 SQL Server 代理从命令行运行脚本。 有关 sqlcmd 的详细信息,请参阅 SQL Server 联机丛书中的“sqlcmd 实用工具”。 有关 SQL Server 代理的详细信息,请参阅 SQL Server 联机丛书中的“自动化管理任务”(SQL Server 代理)。

保护 SQL Server 中的对象

将转换的数据库对象加载到 SQL Server 后,可以对这些对象授予和拒绝权限。 在将数据迁移到 SQL Server 之前,最好采取此作。 有关如何帮助保护 SQL Server 中的对象的信息,请参阅 SQL Server 联机丛书中的“数据库和数据库应用程序的安全注意事项”。

后续步骤