编写数据库数据和文件复制的传输脚本

本文关键字:复制 传输 脚本 文件 数据库 数据 | 更新日期: 2023-09-27 18:06:32

我知道这对于SO的标准来说是一个有点笼统的问题,但是我已经读了一些关于类似主题的文章,每个人都说"这是一个草稿工作",但是我越是想办法做到这一点,我就越困惑。我需要找到一些解决方案,最后它可能是任何解决方案,但如果它确实是标准和简单的东西,我想至少得到我应该遵循的基本步骤来做到这一点,甚至更好-一个教程或类似的东西,涵盖主题类似于我的。

我有-一个继承数据库与3个表,其中有一个列Picture。在旧的数据库中,这一列是一个String字段,它保存了到文件源的整个路径,例如C:'Images'SomeFolder'SomeImage.jpeg。在新的数据库中,同样的列Picture也存在,但它只保存图片的名称。路径在Config表中,但我认为这并不重要,因为路径将在传输脚本中硬编码(或者我认为这是要做的方式)。

所以在新旧数据库之间发生了这个传输脚本,我需要以下逻辑步骤:

  1. Picture列的值
  2. 检查是否有现有的文件(像File.Exist我想象)
  3. 更改图像文件的名称(有新的命名约定,因此所有名称必须相应地更改)
  4. 将图像文件复制到目标文件夹(路径在脚本中硬编码或从表Config中获取)
  5. 复制新的图像文件名到新的数据库列Picture
  6. 为表中的所有行和所有具有Picture列的表(再次硬编码,因为只有3个表)执行此操作
  7. 对于未成功复制的文件和详细信息(表,行,文件名-我不确定在这里显示什么最好)的某种报告

我读了很多关于BulkCopy,但到目前为止,我认为这不是我应该寻找解决这个问题。我有一些棘手的部分-这是没有必要是与从旧数据库采取的路径相关联的现有图像,所以如果是这种情况下,我必须继续,但也记录该信息。此外,即使不可能发生,在执行期间,更确切地说,在将图像文件复制到新位置期间,可能会导致错误,我想我应该只记录错误,但不太确定,因为有一个实际的图像。

然而,你建议用什么方法使它工作?用什么,有没有专门为这种情况设计的东西,我应该知道。我现在唯一知道的是我要用C#写。它很可能是Command Line应用程序,可能需要作为.exe运行,我不确定这是否会造成任何困难。

p。S

我不确定这对当前情况是否重要,但新应用程序是使用ADO.NET Entity Framework代码优先方法构建的。开发服务器是MS SQL Server 2012,但工作服务器将与MS SQL Server 2008。我不确定这是否也会成为一个问题,因为现在我们没有任何兼容性问题,除了不同的排序,但这是修复的。

编写数据库数据和文件复制的传输脚本

我宁愿去潜水。

设计一个中间表,被称为PictureRepository表,这个表将有你需要从数据源读取数据的所有列,所有列都需要保存在目标表和额外的列,如状态,错误描述和

  1. Reading Data(通过读取源表来填充PictureRepository)。
  2. Validating Data(验证图片存在和…通过阅读图片仓库。更新统计信息和错误描述列(如果需要)
  3. Operation(创建新图像文件名并更新PictureRepository中的列)
  4. Saving data(从PictureRepository读取无错误数据行并将其保存到目标表)

报告将通过从picturererepository读取错误数据来完成。
根据问题的复杂程度和经验,你可以用c#或SQL来完成这些阶段(读取数据和保存数据可以通过存储过程来完成)。

希望对大家有所帮助