Existe-t-il un outil pour convertir une requête SQL d'une base de données en une autre?Convertir une requête SQL pour une base de données différente
Pour SQLite
> CREATE TABLE ConstantValues( Id int
> AUTOINCREMENT primary key ,
> VariableName varchar(50) , Values
> varchar(150))
Pour SQL Server
> CREATE TABLE ConstantValues( Id
> INTEGER identity(1,1) primary key ,
> VariableName varchar(50) , Values
> varchar(150))
De même, il est différent pour Oracle et SQL Server. Aussi, dans la déclaration des contraintes de clé étrangère, s'il y a un outil pour que nous puissions obtenir SQL depuis n'importe quelle base de données vers n'importe quelle base de données, ce serait vraiment utile pour moi.
J'ai créé une fonction comme celui-ci, mais il ne semble pas être une bonne solution:
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);
}
De même pour SQLite, concaténation est effectuée à l'aide ||
alors que dans SQL Server, il est fait à l'aide +
.
juste passé en revue une application 3ème partie qui a été porté comme celui d'Oracle à MSSQL. Ils ont écrit du code pour implémenter SEQUENCES. Sauf dans des cas simples, le changement de SGBDR devrait également impliquer une refonte de la base de données. – Bill
ne pas oublier de marquer la réponse comme acceptée si vous avez l'info que vous voulez .. –