c# - 为不同的数据库转换 SQL 查询

标签 c# .net sql database

是否有工具可以将一个数据库的一个 SQL 查询转换为另一个数据库的 SQL 查询?

对于 SQLite

CREATE TABLE ConstantValues(
    Id int AUTOINCREMENT primary key,
    VariableName varchar(50),
    Values varchar(150)
)

对于 SQL Server

CREATE TABLE ConstantValues(
    Id INTEGER identity(1,1) primary key,
    VariableName varchar(50),
    Values varchar(150)
)

同样,Oracle 和 SQL Server 也不同。同样在外键约束声明中,如果有一个工具可以让我们从任何数据库到任何数据库获取SQL,那对我来说真的很有帮助。

我已经创建了一个这样的函数,但它似乎不是一个好的解决方案:

private string changeSQL(string sql)
{
    switch (dbtype)
    {
        case dbType.SQLite:
            sql = sql.Replace(" int ", " INTEGER ");
            sql = sql.Replace(" identity(1,1) ", " AUTOINCREMENT ");
            break;
        case dbType.MsAscess:
            sql = sql.Replace(" int ", " ");
            sql = sql.Replace(" identity(1,1) ", "");
            sql = sql.Replace("AUTOINCREMENT", "AUTOINCREMENT");

            break;
    }
    return (sql);
}

与 SQLite 类似,连接是使用 || 完成的,而在 SQL Server 中,它是使用 + 完成的。

最佳答案

SwisSQL Console 5.0

控制台提供了一个即时解决方案,提供快速可靠的 SQL 查询转换实用程序,可加速迁移。控制台支持跨 Oracle、SQL Server、IBM DB2、MySQL、Sybase、PostgreSQL、Informix 和 Netezza 数据库进行迁移。该软件还具有在目标数据库中测试转换后的 SQL 的功能。

关于c# - 为不同的数据库转换 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3572449/

相关文章:

c# - xml解析错误: hexadecimal value is an invalid character

c# - 如何在 .NET 中测试可执行文件

sql - MySQL 高级选择帮助

sql - 使用准备好的语句创建 PostgreSQL 表注释

c# - 如何等待 gRPC 服务器连接?

c# - Raycast - 从 C# 转换为 UnityScript

c# - 添加/删除行时 WPF DataGrid 是否触发事件?

mysql - 在 BASH 中,如何连接到本地系统 DB2 或 MySQL 进行简单查询?

c# - 我怎样才能有相同的编码字符串?

c# - 如何用C#设计一个全屏应用程序?