sql server使用xp_cmdshell动态创建文件夹
2014-04-17 14:58
267 查看
创建sql server存储过程动态创建文件夹,文件夹名根据创建时间决定
xp_cmdshell语法
xp_cmdshell {'command_string'} [, no_output]
参数
'command_string'
是在操作系统命令行解释器上执行的命令字符串。command_string 的数据类型为 varchar(255) 或 nvarchar(4000),没有默认值。command_string 不能包含一对以上的双引号。如果由 command_string 引用的文件路径或程序名称中有空格,则需要使用一对引号。如果使用嵌入空格不方便,可考虑使用 FAT 8.3 文件名作为解决办法。
no_output
是可选参数,表示执行给定的 command_string,但不向客户端返回任何输出。
返回代码值
0(成功)或 1(失败)
结果集
执行下列 xp_cmdshell 语句将返回当前目录的目录列表。
xp_cmdshell 'dir *.exe'
行以 nvarchar(255) 列的形式返回。
执行下列 xp_cmdshell 语句将返回随后的结果集:
xp_cmdshell 'dir *.exe', NO_OUTPUT
由于没有了解xp_cmdshell的参数定义,将@cmd参数设置为nvarchar(max),导致执行时出现错误“过程需要类型为'varchar'的参数'command_string'”。需要将@cmd定义为长度小于或等于4000的nvarchar类型变量。
create procedure sp_createdir @dir nvarchar(4000), as begin declare @cmd nvarchar(4000) declare @now datetime set @now = getdate() set @dir = @dir + '\' +replace(replace(replace(convert(varchar, @now, 120), '-',''), ' ', ''),':', '') set @cmd = 'mkdir ' + @dir exec sp_configure 'show advanced options', 1 --允许配置高级选项 reconfigure --重新配置 exec sp_configure 'xp_cmdshell', 1 --启用xp_cmdshell reconfigure --重新配置 exec xp_cmdshell @cmd exec sp_configure 'xp_cmdshell', 0 --执行完成后出于安全考虑可以将xp_cmdshell关闭 end
xp_cmdshell语法
xp_cmdshell {'command_string'} [, no_output]
参数
'command_string'
是在操作系统命令行解释器上执行的命令字符串。command_string 的数据类型为 varchar(255) 或 nvarchar(4000),没有默认值。command_string 不能包含一对以上的双引号。如果由 command_string 引用的文件路径或程序名称中有空格,则需要使用一对引号。如果使用嵌入空格不方便,可考虑使用 FAT 8.3 文件名作为解决办法。
no_output
是可选参数,表示执行给定的 command_string,但不向客户端返回任何输出。
返回代码值
0(成功)或 1(失败)
结果集
执行下列 xp_cmdshell 语句将返回当前目录的目录列表。
xp_cmdshell 'dir *.exe'
行以 nvarchar(255) 列的形式返回。
执行下列 xp_cmdshell 语句将返回随后的结果集:
xp_cmdshell 'dir *.exe', NO_OUTPUT
由于没有了解xp_cmdshell的参数定义,将@cmd参数设置为nvarchar(max),导致执行时出现错误“过程需要类型为'varchar'的参数'command_string'”。需要将@cmd定义为长度小于或等于4000的nvarchar类型变量。
相关文章推荐
- SQL Server 启用 xp_cmdshell 与bcp 使用
- [SQL Server]使用CLR存储过程替代xp_cmdshell
- SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_co
- SQL Server 2005 启用 xp_cmdshell 使用T-SQL语句导出数据到文件
- 使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
- 使用DOM动态创建js实现多附件上传客户端
- sql 2005如何使用被禁止的xp_cmdshell
- 动态、静态库的创建和使用
- 无盘工作站(六)-使用DOSRDP XP创建无盘站引导软盘
- 使用easyui创建tabs组件和动态添加
- VB中使用API创建深层目录(建立多层文件夹)
- 使用Expression动态创建lambda表达式
- SQL语句获取SQL服务器名称【SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问】
- SQL Server 动态SQL使用(处理输入和输出变量)
- c++ 使用new动态的创建指定大小的二维数组
- SQL SERVER 2005开启xp_cmdshell的方法
- Sql Server游标使用 exec函数执行动态sql
- 使用JQuery动态创建元素并插入到合适的位置
- 【初级】VS2015/MFC动态创建工具栏1(使用图标创建工具栏)
- Android官方开发文档Training系列课程中文版:使用Fragment构建动态UI之Fragment创建