是否有工具可以将一个数据库的一个 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 中,它是使用 +
完成的。
最佳答案
控制台提供了一个即时解决方案,提供快速可靠的 SQL 查询转换实用程序,可加速迁移。控制台支持跨 Oracle、SQL Server、IBM DB2、MySQL、Sybase、PostgreSQL、Informix 和 Netezza 数据库进行迁移。该软件还具有在目标数据库中测试转换后的 SQL 的功能。
关于c# - 为不同的数据库转换 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3572449/