2015-06-10 40 views
0

我使用SQL Server代理來填充DataWarehouse中的表。我在工作中有大約50個步驟,並且每個步驟都使用代理帳戶運行。除了一個步驟外,每一步都能正常工作:SSIS包執行成功,但沒有完成其工作

SSIS包含大約20個執行SQL任務的程序。這是我在執行SQL任務:

DECLARE @RC int 

DECLARE @fordate datetime = null 

DECLARE @tablename sysname = 'D_ENTITY' 

DECLARE @dataFolder varchar(1024) = 'C:\MountPoints1\src_etl\' 

DECLARE @logFolder varchar(1024) = 'C:\MountPoints1\src_etl\' 

DECLARE @debug bit = 0 

EXECUTE @RC = [dbo].[ETL1A_HR] 
@fordate 
,@tablename 
,@dataFolder 
,@logFolder 
,@debug 
GO 

事情是,如果我從SSIS目錄執行包,它工作正常。但是,如果它按工作運行,它會成功,但只能從表中刪除,但不會填充它。程序似乎停在中間的某個地方。

任何想法? 請指教,花了我幾天的時間試圖解決這個問題...

+0

一注意:我不能使用transact sql查詢,因爲它不允許代表我們的服務器上的代理帳戶運行 –

+0

您是什麼意思,它只會刪除但不填充它?我似乎沒有發現任何刪除/填充與您的腳本。從哪裏讀取數據以填充表格?它是數據文件夾中的文件嗎? – BICube

+0

使用SQL事件探查器觀察SP在做什麼。當SP運行時,您可以監視SP內部的內部語句。這會給你一些線索的理由。 –

回答

0

我認爲它可能與權限有關。執行SSIS包將使用您的安全上下文,但是通過代理運行代理模擬代理中定義的憑據,然後使用該安全上下文運行作業步驟。

+0

嗨,是的,就是這樣。今天早上我意識到PROXY ACCOUNT沒有許可處理BULK INSERT。我只授予常規數據庫寫入權限並從文件夾讀取文件。沒有意識到有單獨的批量管理權限。 –

相關問題