用于复制表架构的简洁/优雅的方法
本文关键字:方法 简洁 用于 复制 | 更新日期: 2023-09-27 18:36:56
我有一个带有任意模式的表 T1。 我想创建具有相同架构的第二个表 T2,然后将一些数据从 T1 移植到 T2 中。 我可以很容易地手动创建 T2(具有相同的列名和类型),但这不是一个优雅的解决方案。
我是使用 ADO.net 的新手,刚刚发现了SqlDataAdapter
类,我可以使用它来提取包含DataColumnCollection
的DataTable
。 如果可能的话,我想以某种方式直接使用此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 命令将创建一个空表,其架构与所需表相同。