这是关于Sql生成的问题,而不是sql创建sql和ORM。
他们的任何跨数据库工具是否能够创建插入语句,例如对于特定架构或命名空间中的所有表。假设命名空间/模式是Sql Server 2008中的Aqua,并且您的实用程序出现并为该命名空间/模式生成所有可能的插入语句。它适用于Oracle / MySql / Postgres / db2等。
感谢。 鲍勃
答案 0 :(得分:1)
ANSI SQL在架构INFORMATION_SCHEMA下提供了一组标准视图,以便为此目的提供元数据。
为了生成简单的表插入语句模板,为给定表生成insert语句真正需要的所有信息都是执行此查询:
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/