Sql server 检测文本文件是否在MS SQL Server中打开
是否有一种方法可以使用MS SQL server检测文本文件是否打开。我想检查文件是否打开,如果打开,然后发送邮件警报。我有一个基本脚本。 根据您的要求进行修改Sql server 检测文本文件是否在MS SQL Server中打开,sql-server,text-files,Sql Server,Text Files,是否有一种方法可以使用MS SQL server检测文本文件是否打开。我想检查文件是否打开,如果打开,然后发送邮件警报。我有一个基本脚本。 根据您的要求进行修改 DECLARE @FILENAME VARCHAR(200)='TEST.TXT' ---- THE FILE WHICH YOU WANT TO CHECK DECLARE @QUERY VARCHAR(500) CREATE TABLE #tasklist ( output VARCHAR(max) ) D
DECLARE @FILENAME VARCHAR(200)='TEST.TXT' ---- THE FILE WHICH YOU WANT TO CHECK
DECLARE @QUERY VARCHAR(500)
CREATE TABLE #tasklist ( output VARCHAR(max) )
DECLARE @TASKS TABLE ( output VARCHAR(max) )
INSERT INTO #tasklist
EXEC ('EXEC XP_CMDSHELL ''WMIC PROCESS GET COMMANDLINE''')
SET @QUERY = 'SELECT * FROM #TASKLIST WHERE OUTPUT LIKE ''%'
+ @FILENAME + '%'''
INSERT INTO @TASKS
EXEC (@QUERY)
IF EXISTS(SELECT Count(1)
FROM @TASKS)
BEGIN
SELECT 'THE FILE IS OPEN AS FOLLOWS',
*
FROM @TASKS
END
ELSE
BEGIN
SELECT 'NO SUCH FILE OPEN'
END
DROP TABLE #tasklist
“打开”是什么意思?确切地说,不是用SQL,但你可以用C来完成。我试着运行上面的代码,根据需要修改它,但它似乎不起作用。代码没有出错,我没有在我要查找的文件的任务列表表中看到输出,我可以看到有空行的表。我观察到的奇怪的事情是,如果在命令提示符下运行相同的命令,它会详细说明文件名,但如果在SQL中运行,它不会详细说明文件名。可能是您应该在该特定文件夹中授予fill访问权限。MSSQL帐户似乎没有访问权限。尝试给予完全访问权限。