用于复制表架构的简洁/优雅的方法

本文关键字:方法 简洁 用于 复制 | 更新日期: 2023-09-27 18:36:56

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

我是使用 ADO.net 的新手,刚刚发现了SqlDataAdapter类,我可以使用它来提取包含DataColumnCollectionDataTable。 如果可能的话,我想以某种方式直接使用此DataColumnCollection来定义一个新表,有点像:

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

有没有可以轻松实现此功能的 API? 我目前的方法涉及遍历originalDataColumnCollection以构建create table Table2 (...)字符串,然后通过SqlCommand提交。

更新:

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

用于复制表架构的简洁/优雅的方法

您可以执行空的 select 命令并将其存储到新表中,以便使用与旧表相同的架构创建表,并且您可以稍后使用它执行所需的操作。

select * into new_table from old_table where 1 = 0

执行此 SQL 命令将创建一个空表,其架构与所需表相同。