Concise/elegant 复制 table 架构的方法?

Concise/elegant method for duplicating a table's schema?

我有一个带有任意模式的 table T1。我想用相同的架构创建第二个 table T2,然后将一些数据从 T1 移植到 T2。我可以很容易地手动创建 T2(具有相同的列名和类型),但这不是一个优雅的解决方案。

我刚开始使用 ADO.net,刚刚发现 SqlDataAdapter class,我可以用它来提取包含 [=15] 的 DataTable =].如果可能的话,我想以某种方式直接使用这个 DataColumnCollection 来定义一个新的 table,有点像这样:

DataTable dt = new DataTable("Table2", originalDataColumnCollection);
sqlDataAdapter.MakeTable(dt);

是否有 API 可以轻松实现此功能?我当前的方法涉及迭代 originalDataColumnCollection 以构建 create table Table2 (...) 字符串,然后通过 SqlCommand.

提交

更新:

我刚刚注意到我无法从 originalDataColumnCollection 获取 SQL 类型,而是返回一个 C# 类型。也许这种方法根本无法确保相同的列结构?

您可以执行一个空的 select 命令并将其存储到一个新的 table 中,这样就可以使用与旧的 table 相同的模式创建一个 table 并且您以后可以用它做你想做的事。

select * into new_table from old_table where 1 = 0

执行此 sql 命令将创建一个空的 table,其架构与您想要的 table 相同。