出于好奇,没有一个存储过程必须删除操作系统文件的能力吗?
如果不是,我将不得不做出这样的删除文件Windows批处理文件,然后运行使用OSQL存储过程。
出于好奇,没有一个存储过程必须删除操作系统文件的能力吗?
如果不是,我将不得不做出这样的删除文件Windows批处理文件,然后运行使用OSQL存储过程。
从技术上讲,有正确的权限,可以执行xp_cmdshell发出命令到OS(或调用批处理文件,等等),但它可能不是一个好主意。 如果你使用这种方法,是非常严格的权限。
编辑的清晰度。
尝试这个
选项1使用xp_cmdshell的删除文件
xp_cmdshell 'del y:\file.dat'
选项2删除使用OLE自动化文件
DECLARE @ResultOP int
DECLARE @OLE_Obj int
EXEC @ResultOP = sp_OACreate 'Scripting.FileSystemObject', @OLE_Obj OUTPUT
EXEC @ResultOP = sp_OAMethod @OLE_Obj, 'DeleteFile', NULL, 'y:\file.dat'
EXEC @ResultOP = sp_OADestroy @OLE_Obj
你也可以使用一个CLR存储过程这一点。 这是主要原因为管理存储过程的存在之一,与以安全的方式操作系统进行交互。