转换 Sybase ASE 数据库对象 (SybaseToSQL)

在你连接到 SAP Adaptive Server Enterprise (ASE)、连接到 SQL Server 或 Azure SQL 并设置项目和数据映射选项之后,可将 SAP Adaptive Server Enterprise (ASE) 数据库对象转换为 SQL Server 或 Azure SQL 数据库对象。

转换过程

转换数据库对象时,会从 ASE 获取对象定义,将这些定义转换为类似的 SQL Server 或 SQL Azure 对象,然后将此信息加载到 SSMA 元数据。 它不会将信息加载到 SQL Server 或 Azure SQL 的实例中。 然后,你可使用 SQL Server 或 Azure SQL 元数据资源管理器,查看对象及其属性。

在转换期间,SSMA 会将输出消息输出到“输出”窗格,并将错误消息输出到“错误列表”窗格。 使用输出和错误信息来确定是否必须修改 ASEL 数据库或转换过程以获取所需的转换结果。

设置转换选项

在转换对象之前,查看“项目设置”对话框中的项目转换选项。 使用此对话框,可以设置 SSMA 如何转换函数和全局变量。 有关详细信息,请参阅项目设置(转换)(SybaseToSQL)

转换 ASE 数据库对象

要转换 ASE 数据库对象,请首先选择要转换的对象,然后让 SSMA 执行转换。 要在转换期间查看输出消息,请在“视图”菜单上选择“输出”。

将 ASE 对象转换为 SQL Server 或 SQL Azure 语法

  1. 在 Sybase 元数据资源管理器中,展开 ASE 服务器,然后展开 “数据库”。

  2. 选择要转换的对象:

    • 要转换所有数据库,请选中“数据库”旁边的复选框。

    • 要转换或忽略数据库,请选中或清除数据库名称旁边的复选框。

    • 要转换数据或忽略单个架构,请先展开数据库,展开“架构”,然后选中或清除架构旁边的复选框。

    • 要转换或忽略对象类别,请展开架构,然后选中或清除类别旁边的复选框。

    • 要转换或忽略单个对象,请展开类别文件夹,然后选中或清除对象旁边的复选框。

  3. 要转换所有选定的对象,请右键单击“数据库”,然后选择“转换架构”。

    还可以通过右键单击对象或其包含文件夹,然后选择“转换架构”来转换单个对象或对象类别。

注意

某些 SAP ASE 系统函数的行为与等效 SQL Server 系统函数并不完全匹配。 为了模拟 SAP ASE 行为,SSMA 会在已转换的 SQL Server 数据库中,在名为“s2ss”的架构下生成用户定义函数。 按照项目设置,某些 SQL Server 系统函数将替换为这些模拟函数。 SSMA 创建以下的用户定义函数:

char_length_nvarchar
char_length_varchar
charindex_nvarchar
charindex_varchar
hextoint
index_colorder

inttohex
ssma_current_time
ssma_datediff
ssma_datepart
substring_nvarchar
substring_varbinary

substring_varchar
to_unichar
uhighsurr
ulowsurr

Azure SQL 不支持的对象

在本地转换为 SQL Server 的过程中,SSMA 将以下 T-SQL 关键字用于 SAP ASE,但 SQL Azure T-SQL 语法不支持这些关键字:

CHECKPOINT
CREATE/ALTER/DROP DEFAULT
CREATE/DROP RULE
DBCC TRACEOFF
DBCC TRACEON

GRANT/REVOKE/DENY ALL
KILL
READTEXT
SELECT INTO
SET OFFSETS

SETUSER
SHUTDOWN
WRITETEXT

查看转换问题

某些 SAP ASE 对象可能无法转换。 可以通过查看摘要转换报告,来确定转换成功率。

查看摘要报告

  1. 在 Sybase 元数据资源管理器中,选择“数据库”。

  2. 在右窗格中选择“报告”选项卡。

    此报告显示已评估或转换的所有数据库对象的摘要评估报告。 也可以查看单个对象的摘要报告:

    • 要查看单个数据库的报告,请在 Sybase 元数据资源管理器中选择数据库。

    • 要查看单个数据库对象的报告,请在 Sybase 元数据资源管理器中选择对象。 存在转换问题的对象具有一个红色的错误图标。

对于转换失败的对象,可以查看导致转换失败的语法。

查看单个转换问题

  1. 在 Sybase 元数据资源管理器中,展开“数据库”。

  2. 展开显示红色错误图标的数据库。

  3. 展开“架构”文件夹,然后展开显示红色错误图标的架构。

  4. 在架构的下方,展开显示红色错误图标的文件夹。

  5. 选择显示红色错误图标的对象。

  6. 在右窗格中选择“报告”选项卡。

  7. “报告”选项卡的顶部具有一个下拉列表。 如果此列表显示“统计信息”,请将所选内容更改为“源”

    SSMA 将在代码的正上方显示源代码和几个按钮。

  8. 选择“下一个问题”和箭头指向右侧的红色错误图标。

    SSMA for SAP ASE 将突出显示它在当前对象中找到的第一个存在问题的源代码。

对于无法转换的每个项目,必须确定要对该对象执行的操作:

  • 可以在“SQL”选项卡上修改过程和触发器的源代码。

  • 可以更改 SAP ASE 对象以删除或修改存在问题的代码。 要将已更新的代码加载到 SSMA 中,必须更新元数据。 有关详细信息,请参阅连接到 SAP ASE (SybaseToSQL)

  • 可将对象从迁移中排除。 在将对象加载到 SQL Server 或 Azure SQL 中并从 SAP ASE 迁移数据之前,在 SQL Server 或 Azure SQL 元数据资源管理器和 Sybase 元数据资源管理器中,清除项目旁边的复选框。

后续步骤

迁移过程的下一步是将已转换的数据库对象加载到 SQL Server/SQL Azure (SybaseToSQL)

另请参阅

将 SAP ASE 数据库迁移到 SQL Server 或 Azure SQL 数据库 (SybaseToSQL)