SQL Server:如何在C#中执行截断和复制?
我要开始一个新项目。任务基本上是将数据从文件移动到数据库。 假设每小时有一个数据文件,一行文件转换成一行数据库 技术细节:SQL Server:如何在C#中执行截断和复制?,c#,sql-server,entity-framework,truncate,bulk,C#,Sql Server,Entity Framework,Truncate,Bulk,我要开始一个新项目。任务基本上是将数据从文件移动到数据库。 假设每小时有一个数据文件,一行文件转换成一行数据库 技术细节: 文件行(以DB为单位):10k-100k 条目:10个字符[100] 我的问题是更新过程 我想做的是: 解决方案1: 保留tact中的实际数据表(原始表) 将数据从文件移动到阴影表(复制表) 完成该过程后: 截断原始表格 将数据从copy_table大容量复制到original_table 解决方案2: 将新记录添加到原始\u表中 删除带有旧时间戳的所有记录 重新组织原
- 文件行(以DB为单位):10k-100k
- 条目:10个字符[100]
copy_table
大容量复制到original_table
原始\u表中
解决方案2听起来确实更有效。解决方案1听起来不必要的迂回 要完成解决方案1中的步骤4和5或解决方案2中的步骤3,只需与适当的T-SQL文本一起使用-例如,
TRUNCATE TABLE original_TABLE
如何
都打包在一个事务中?这样,如果复制失败,将回滚截断,并且不会丢失原始表。没有数据洗牌。解决方案1:错误。它存在无法访问表的计时问题,这意味着其他程序必须处理此问题 解决方案2:相同 那么: 3:将新数据加载到临时表中,然后将其合并到原始表中