Sql server query

时间:2015-05-05 05:15:29

标签: sql sql-server tsql

请您帮我提供在指定驱动器中查找文件夹的逻辑。以下是一个例子:

Declare @NewDrive varchar(1)
Set @NewDrive = 'C'
DECLARE @StringValue varchar(2000)
SET @StringValue = 'C:\Drive1\Folder1\db3.ndf'

我需要查找@StringValue中是否存在@NewDrive中的文件夹。如果没有应该创建它。

@StringValue可以包含多个文件夹。

1 个答案:

答案 0 :(得分:-1)

我不认为你有一个内置功能,但我找到了通过这个LINK的方法,即通过创建一个函数;

CREATE FUNCTION dbo.fn_FileExists(@path varchar(512))
RETURNS BIT
AS
BEGIN
     DECLARE @result INT
     EXEC master.dbo.xp_fileexist @path, @result OUTPUT
     RETURN cast(@result as bit)
END;
GO

创建功能后,您可以按以下步骤操作;

Declare @cmdpath nvarchar(60)
If Not EXISTS (select dbo.fn_FileExists(filename) from dbo.YourTable)
Begin

 // Create folder
 exec master.dbo.xp_cmdshell @cmdpath

End

希望它有所帮助。