【发布时间】:2015-01-09 23:30:55
【问题描述】:
我有一个带有任意模式的表 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 * from old_table into new_table where(你要导入的行)
-
@dotctor 我不想复制行(但是;我需要做一些客户端处理)。我正在尝试创建一个具有相同列名和类型的新(空)表。
标签: c# .net sql-server ado.net