如何使用SQL过程在同一域上的其他服务器上创建子目录
我正在编写SQL脚本,该脚本的任务是将存储在一台服务器上的SQL数据库中的二进制数据(图像、文档)传输到同一域中另一台服务器上的共享文件夹。但我还想使用SQL脚本在此共享文件夹中创建目录树,因此我使用以下命令和UNC路径:如何使用SQL过程在同一域上的其他服务器上创建子目录,sql,sql-server-2008,tsql,windows-server-2008-r2,Sql,Sql Server 2008,Tsql,Windows Server 2008 R2,我正在编写SQL脚本,该脚本的任务是将存储在一台服务器上的SQL数据库中的二进制数据(图像、文档)传输到同一域中另一台服务器上的共享文件夹。但我还想使用SQL脚本在此共享文件夹中创建目录树,因此我使用以下命令和UNC路径: EXEC master.dbo.xp_create_subdir '//MYSERVER/sharedfoler/testdir/' 但我得到了一个错误: Msg 22048, Level 15, State 0, Line 0 Error executing extend
EXEC master.dbo.xp_create_subdir '//MYSERVER/sharedfoler/testdir/'
但我得到了一个错误:
Msg 22048, Level 15, State 0, Line 0
Error executing extended stored procedure: Invalid Parameter
我的权限是可以的,因为当我尝试将数据传输到这个共享文件夹时,它工作正常。谢谢您的建议。您可以尝试以下方法:
--master.dbo.xp_create_subdir '\\MYSERVER\sharedfoler\testdir\'
--GRANT exec ON xp_cmdshell TO '<somelogin>'
EXECUTE AS LOGIN = '<other_login>';
GO
USE master;
xp_cmdshell 'md \\MYSERVER\sharedfoler\testdir\, NO_OUTPUT';
REVERT ;
-master.dbo.xp\u create\u subdir'\\MYSERVER\sharedfoler\testdir\n
--将xp_cmdshell上的exec授予“”
以LOGIN=''的身份执行;
去
使用master;
xp_cmdshell“md\\MYSERVER\sharedfolder\testdir\,无输出”;
还原
我认为您需要指定整个路径EXEC master.dbo.xp\u create\u subdir'C:\MYSERVER\sharedfolder\testdir'
@Slasko谢谢您的建议,但我需要使用UNC路径,因为共享文件夹位于不同的计算机上,而不是与我的SQL Server相同,但两者位于同一网络域中。我认为在该路径中没有问题,因为我使用相同类型的路径来创建二进制数据,并将其从数据库传输到要创建子目录的同一台服务器,以及文件传输UNC路径。