这是一个关于 Sql 生成的问题,不是 sql 创建 sql 也不是 ORM。
他们是否有任何跨数据库工具可以创建插入语句,例如针对特定模式或命名空间中的所有表。假设命名空间/模式是 Sql Server 2008 中的 Aqua,您的实用程序会出现并为该命名空间/模式生成所有可能的插入语句。它适用于 Oracle/MySql/Postgres/db2 等。
谢谢。鲍勃
这是一个关于 Sql 生成的问题,不是 sql 创建 sql 也不是 ORM。
他们是否有任何跨数据库工具可以创建插入语句,例如针对特定模式或命名空间中的所有表。假设命名空间/模式是 Sql Server 2008 中的 Aqua,您的实用程序会出现并为该命名空间/模式生成所有可能的插入语句。它适用于 Oracle/MySql/Postgres/db2 等。
谢谢。鲍勃
ANSI SQL 在模式 INFORMATION_SCHEMA 下提供了一组标准视图,以便为此目的提供元数据。
为了生成简单的表插入语句模板,为给定表生成插入语句真正需要的所有信息就是执行此查询:
select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_CATALOG = <my-db-name>
and TABLE_SCHEMA = <table-owner-schema>
and TABLE_NAME = <table-name>
order by ORDINAL_POSITION
在任何支持 ANSI 信息模式视图的数据库中。这将按照预期的顺序为指定表中的每一列提供一行。
除了上述之外,由于没有两家供应商支持带有元数据的系统表集,因此您几乎可以作为跨数据库解决方案的 SOL。遗憾的是,我不相信 Oracle 支持 ANSI 信息模式视图。
尽管您可能会查看 Red Gate 的产品系列:http ://www.red-gate.com/