2010-06-21 43 views
0

我目前正在讀存儲在一個平面文件到我的數據庫,並針對它運行報告數據的一些任務。我遇到的一個問題是檢查一個文件是否真的存在。有一個簡單的函數來檢查文件是否存在?文件中SQL存儲過程

謝謝!

回答

3

只是谷歌上搜索,我發現this在SQL DBA和this在MS SQL提示。

+0

嗚嗚......看來我的谷歌技能今天工作不正常。感謝您的幫助! – Shaded 2010-06-21 16:27:02

+0

沒問題。很高興幫助:d – Kyra 2010-06-21 16:28:39

0

我相信你可以做這樣的事情:

DECLARE @Path varchar(128) , 
@FileName varchar(128) 
SET @Path = 'C:\' 
SET @FileName = 'FILE_NAME.EXT' 

DECLARE @objFSys int 
DECLARE @i int 
DECLARE @File varchar(1000) 

SET @File = @Path + @FileName 
EXEC sp_OACreate 'Scripting.FileSystemObject', @objFSys out 
EXEC sp_OAMethod @objFSys, 'FileExists', @i out, @File 
IF @i = 1 
    PRINT 'file exists' 
ELSE 
    PRINT 'file does not exists' 
EXEC sp_OADestroy @objFSys 

This article越過這個方法和一對夫婦等。

1

您在存儲過程中做ETL?!我不認爲你應該,只是因爲你可以。

我建議你使用SSIS使用這個。在存儲過程或TSQL中執行ETL不是一種推薦的做法,事實上,它經常用作不做的一個例子。

+0

如果我能+2這一點,我會 – ninesided 2010-06-21 16:28:31

+0

我不是,主要是因爲已經有,我可以使用導入由別人編碼文件的過程。我只是在將文件發送到該過程之前檢查文件是否存在。然而你激怒了我的興趣。你知道我可以學習使用SSIS的任何好的資源嗎? – Shaded 2010-06-21 16:37:00

+0

@Shaded我將從微軟出版社的SQL Server Integration Services Step By Step書開始 – 2010-06-22 13:45:51