Sql server 如何在MS SQL中检查文本或excel文件是否已打开或正在被某些用户使用

Sql server 如何在MS SQL中检查文本或excel文件是否已打开或正在被某些用户使用,sql-server,bulkinsert,Sql Server,Bulkinsert,我有一个在MS SQL中使用大容量插入从文件中读取数据的过程,这个过程在作业中运行。但我面临这个问题,有时用户在作业运行期间保持文件打开,但失败。我想实现一个过程,在执行大容量插入之前,它会检查某个用户当前是否正在使用该文件,如果是,则发送邮件警报,说明“xxx”用户正在使用“yyy”文件名。一旦用户关闭文件,则继续正常过程,而不是出错。您是否尝试使用TRY-CATCH捕获BCP错误?然后您可以使用数据库邮件发送电子邮件。。。虽然你不知道是谁把它锁上了,但你只知道它锁上了。此导入是否在计划时间进

我有一个在MS SQL中使用大容量插入从文件中读取数据的过程,这个过程在作业中运行。但我面临这个问题,有时用户在作业运行期间保持文件打开,但失败。我想实现一个过程,在执行大容量插入之前,它会检查某个用户当前是否正在使用该文件,如果是,则发送邮件警报,说明“xxx”用户正在使用“yyy”文件名。一旦用户关闭文件,则继续正常过程,而不是出错。

您是否尝试使用
TRY-CATCH
捕获BCP错误?然后您可以使用数据库邮件发送电子邮件。。。虽然你不知道是谁把它锁上了,但你只知道它锁上了。此导入是否在计划时间进行?是的,导入在计划时间进行。您无法(轻松)确定谁从SQL Server打开了文件。您可以使用
sp_OACreate
存储过程来执行此操作,但这不是一个好主意。您可能最好构建一些外部powershell来执行此操作,并提前调用它