DB からデータを抽出し、それを毎週 Excel ファイルに書き込む SSIS パッケージを作成しています。データがオフロードされるたびに、Excel ファイルを最初から再生成する必要があります。データ フロー タスクで Excel の宛先を使用すると、既存のファイルを上書きできないことがわかったので、次のことを試しました。
データ オフロードの前に Execute SQL タスクを追加して、次の SQL を使用してファイル内の既存のシートを再作成します。
DROP TABLE Users$
GO
CREATE TABLE Users$ ( Ref NVARCHAR(10), Username NVARCHAR(20), Active INT, Absent INT, Allow Reconciliation NVARCHAR(4), Prefix NVARCHAR(10), First Name NVARCHAR(25), Middle Name NVARCHAR(25), Last Name NVARCHAR(40), Suffix INT, Email NVARCHAR(33), Work Phone NVARCHAR(10), Required Approvals NVARCHAR(1), Division/Section Ref NVARCHAR(15), Grade Ref NVARCHAR(9), Cost Centre Ref NVARCHAR(15), Location Ref NVARCHAR(5), Last Hire Date NVARCHAR(10), Original Hire Date INT, Manager Ref INT, Approver Ref NVARCHAR(6), Gender NVARCHAR(6), Ethnicity NVARCHAR(25), Language NVARCHAR(5), Expiry Date NVARCHAR(10), Staff Category NVARCHAR(50), Source of Funding NVARCHAR(4), BAC Number INT, Title NVARCHAR(50) )
GO
列ヘッダーのみを含む空のファイル テンプレートを保持して、列マッピングが保持されていることを確認し、データ フロー タスクの前にスクリプト タスクを使用して既存の出力ファイルを置き換えます。
どちらの場合も、パッケージは正常に実行され、ログにレコードが Excel ファイルに書き込まれたと表示されますが、ファイルを開くと、ヘッダー行のみが表示され、データは表示されません。私の印象では、ファイルが置き換えられたり、シートが再作成されたりすると、列のマッピングが台無しになります。どうすればよいかわかりません。
編集:データフロータスクを単独で実行すると、レコードが書き込まれることに注意する必要があります。アドバイスしてくださいありがとう