2011-09-29 65 views
1

大家好,我用頭撞牆,希望有人能幫上忙。我有一個用BIDS 2005編寫的ssis包,它基本上從DatabaseA中的表中選擇一些數據行並將數據傳輸到DatabaseB中的表中。它是一個相當簡單和容易的SSIS包。我已經在我們的開發服務器上安裝了該軟件包(正在運行sql server 2008 r2)到集成服務中。當我用我的用戶名(v_ashby-smith)登錄到服務器並通過集成服務直接運行程序包時,程序包成功完成並按預期方式移動數據。SQL Server和SSIS權限問題?

我希望程序包按計劃運行,所以我在sql server代理下創建了一個作業。現在,當我運行作業時,程序包表示它成功完成,但是當檢查目標數據庫表(DatabaseB)時,表中的所有數據都已被擦除! SSIS包不會直接刪除它,只是複製數據。 sql server代理服務已設置爲以域用戶COMPANY \ devsqladm運行,並且已創建了sql server中的用戶,並具有訪問所需數據庫的必要權限。

爲了增加這個難題,當我在BIDS中運行包時,它工作正常並按預期複製數據!

如果任何人有任何想法,我真的很感激它,這應該是比它變得更簡單!

+0

因此,SQL Server代理程序作業的「步驟」列表中只有一個項目,並且運行SSIS程序包的所有項目都正確? – jadarnel27

+0

是的,這是正確的 –

+0

當在SQL Server Management Studio中使用導入/導出嚮導時,有一個設置[從目標表中刪除行](http://msdn.microsoft.com/zh-cn/library/ms189660。 ASPX)。我知道你沒有使用那個嚮導,但是我想知道當你將包從BIDS傳送到SSIS包存儲時,是否會以某種方式打開它。我真的不認爲會發生,但只是要檢查。 – jadarnel27

回答

0

默認情況下,SSIS包或SQL代理都會刪除任何東西......刪除發生在包內(如果您選擇「刪除行」選項,通常是第一個任務),或者刪除邏輯作爲單獨的步驟中介。

您可能想要運行分析器來查看究竟是什麼被調用。或者,也許嘗試刪除用戶的刪除權限,看看包是否失敗。

不幸的是,所提供的信息還不夠。

+0

也許你正在使用兩個不同的dtsx文件? –

+1

也許包設置爲忽略錯誤?這就是爲什麼它沒有拋出錯誤就完成了? –