当前位置:首页 > 数据库 > Sqlserver

SQLserver中的xp_cmdshell

shell是用户与操作系统对话的一个接口,通过shell告诉操作系统让系统执行我们的指令

xp_cmdshell在sqlserver中默认是关闭的存在安全隐患。

            --
            打开xp_cmdshell
            EXEC sp_configure show advanced options, 1;RECONFIGURE;EXEC sp_configure xp_cmdshell, 1;RECONFIGURE;
--关闭xp_cmdshellEXEC sp_configure show advanced options, 1;RECONFIGURE;EXEC sp_configure xp_cmdshell, 0;RECONFIGURE;

以下是跟xp_cmdshell有关的小例子。

1.显示C盘下的内容,这个比较简单

            exec xp_cmdshell dir c:

 

执行结果如下:

技术分享

2.将变量写入文本文件

            DECLARE
            @cmd sysname, @var sysname
SET@var=Today:2015-12-09SET@cmd=echo +@var+ > c:Today.txtEXEC master..xp_cmdshell @cmd

执行上述语句之后,你会在c盘下看到Today这个文件

技术分享

            --
            在查询分析器上执行(EXEC master..xp_cmdshell)
            EXEC master..xp_cmdshell bcp "select * from 数据库名.dbo.表名" queryout c:currency.txt -S 数据库实例 -U"用户" -P"密码" -c--把SQL语句生成一个.sql文件,然后调用
--注:路径的文件夹名称中间不能有空格exec master..xp_cmdshell osql -S 数据库实例 -U 用户 -P 密码 -i    C:cmdshellTest.sql--将数据导入到currency表中EXEC master..xp_cmdshell bcp 数据库名.dbo.表名 in c:currency.txt -c -T--导入数据也同样可以使用-F和-L选项来选择导入数据的记录行。EXEC master..xp_cmdshell bcp 数据库名.dbo.表名 in c:currency.txt -c -F 10 -L 13 -T

 

原文:http://www.cnblogs.com/OliverQin/p/5032014.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐