SQL存储过程中的文件

时间:2010-06-21 16:22:17

标签: sql stored-procedures file-exists

我目前的任务是将存储在平面文件中的一些数据读入我的数据库并运行报告。我遇到的一个问题是检查文件是否确实存在。是否有一个简单的函数来检查文件是否存在?

谢谢!

3 个答案:

答案 0 :(得分:3)

谷歌搜索我在SQL DBA找到this,在MS SQL提示找到this

答案 1 :(得分:1)

你在存储过程中做ETL吗?!!我认为你不应该,因为你可以。

我建议您使用SSIS。在存储过程或TSQL中执行ETL不是推荐的做法,事实上,它经常被用作不做的事情的一个例子。

答案 2 :(得分: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介绍了这种方法以及其他几种方法。