【问题标题】:SSMS change to take data from unzip files to tableSSMS 更改为将数据从解压缩文件提取到表中
【发布时间】:2020-11-18 19:16:05
【问题描述】:

我有一个脚本,它通过 zip 文件将数据输入数据库,在解压缩后首先移动它们,然后将解压缩后产生的 CSV 中的数据插入表中。现在我想更改此脚本以仅从另一个数据库和表中获取数据,但我需要能够将这些数据放在 CSV 数据所在的位置。

USE [$(DataTools)];
GO

DECLARE @LoadJob  VARCHAR(64) = '208_table';
DECLARE @LoadStep VARCHAR(64) = 'spMoveUnzipLoad';
DECLARE @PreLoad  VARCHAR(128) = CONCAT('etl.spChangeFileEncodingAsMUZLPreLoad ''', @LoadJob, '''');

DELETE FROM [load].LoadParameters WHERE loadJob = @LoadJob;

EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'copyOrMoveFile'     , 'move';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'doNotUnzipFile'     , '0';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'FileMask'           , 'data.csv.gz';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'firstRow'           , '2';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'forLoadFolderName'  , '\ForLoad';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'formatFile'         , '\208_Customers.fmt';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'loadedFolderName'   , '\Loaded';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'notLoadedFolderName', '\NotLoaded';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'sourceFolderName'   , '$(SourceFileLocation)';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'targetDatasetName'  , 'table_Staging';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'targetDatabaseName' , '$(DatabaseName)';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'truncate'           , '1';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'unzipFolderName'    , '\208_Customers\Unzip';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'PostLoadSql'        , 'test_PostLoad';
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'PreLoadSql'         , @PreLoad;
EXEC [load].setLoadParameter @LoadJob, @LoadStep, 'workingFolderName'  , '\208_Customers\Working';
------------------------------------------------------------------------------------------------------------------------
--                                                     End of Script
------------------------------------------------------------------------------------------------------------------------

如何更改此脚本以从表中获取我的数据? 它会改变还是需要重新创建?

【问题讨论】:

  • 那个 scipt 没有给我们任何“肉”,它只是一堆 EXEC 语句,用于我们没有定义的用户存储过程。然而,让 SQL Server 执行这样的文件系统任务似乎是 XY Problem
  • @Larnu 我无法发布它,因为文件太大。
  • 如果你不能给我们DDL,我们怎么能希望告诉你如何改变存储过程的定义呢?但是,就像我说的,这似乎是一个 XY 问题。该过程看起来像是在尝试成为一个适合所有过程的尺寸,这不是 SQL 的工作方式。

标签: sql sql-server ssms sql-server-2014


【解决方案1】:

您可以只使用脚本来创建数据库结构,同时将数据数据库内容加载到您的结构中。 查看 SSMS 导出小部件以导出数据库(结构和数据内容)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 2012-06-10
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多