zoukankan      html  css  js  c++  java
  • 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_cmdshell
    EXEC 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-09'
    SET @cmd = 'echo ' + @var + ' > c:Today.txt'
    EXEC 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'
  • 相关阅读:
    LIS
    原根
    数三角形
    组合数问题
    最短路问题
    2020总结
    树状数组
    康托展开
    LCA
    并查集
  • 原文地址:https://www.cnblogs.com/OliverQin/p/5032014.html
Copyright © 2011-2022 走看看