当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:21:00  来源:本站整理

利用sqlcmd在批处理脚本中履行SQL[MSSQL防范]

赞助商链接



  本文“利用sqlcmd在批处理脚本中履行SQL[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

利用sqlcmd可以在批处理脚本中履行SQL.固然这个号令的参数很多,但幸运的是,我们不需求全部理解,在这里扼要介绍以下几个:

{ -U login_id [ -P password ] } | –E trusted connection }] 假如指定了-E就不需求指定用户名密码,当然指定了用户名密码就不用-E了;

-S server_name [ \ instance_name ] 数据库服务器,假如不在本机的话必须指定;

-d db_name 数据库名字,必须的;

[ -i input_file ] [ -o output_file ] sql存在文件里的话用-i,输出到文件用-o;

[ -q "cmdline query" ] [ -Q "cmdline query" and exit ] 输入是简单的sql,不用文件,举荐用-Q,假如你履行完sqlcmd还需求履行别的行动的话;

[ -W remove trailing spaces ] 删除多余的空格,后果会更紧凑.

当我们在真正的脚本中履行sql时,普通需求传入和输出变量.

传入变量对比简单,以下所示:

sqlcmd -d test -Q "select * from dbo.Investment where investor=$(x)" -v x='IBM' -W

这个语句从test数据库的Investment表中选出investor等于x的全部行,注意到变量x被包含在${}中.

然后用-v定义了x的值,'IBM'.

-W肯定输出的后果不包含多余的空格.

x的值假如没有在sqlcmd中设定,系统会试图从别的地方去探求,大概的地方包含,系统环境变量,用户环境变量,以及用在sqlcmd之前用set设定的变量值.

假如你的数据里确切包含${},那么你并不但愿举行变量的替换,利用-x选项可以禁止变量的替换.

有些时刻,你还但愿能得到sql履行后果并保存到变量中.比方你们的日记系统每天都在产生日记文件,你要履行一个脚本来处理这些日记文件并存到数据库中.在处理之前,你必须读取数据库以肯定上次处理到那一天了.你盼望这样能办理你的问题:

sqlcmd -d test -Q "select ${x}=max(date) from dbo.logDates " -W

但这样并不工作.因为sqlcmd并不供应输出变量.

不过你可以这样做:

sqlcmd -d test -Q "declare @x nvarchar(8);select @x=max(date) from dbo.logDates;print @x; " -W

这样你便可以得到一个干干净净的数字,而不会包含列名和其他信息.

接着你将上述后果导入到一个文件里:

sqlcmd -d test -Q "declare @x nvarchar(8);select @x=max(date) from dbo.logDates;print @x; " -W >1.txt

目前到了最关键的一步,将文件的内容写入到变量里:

set /P myvar=<1.txt

/p表明这个变量myvar的值需求用户输入;

<1.txt表明从1.txt中读入而不是从其他地方读入.

这样,我们就巧妙的把sql履行的后果写入到变量里了.   以上是“利用sqlcmd在批处理脚本中履行SQL[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用SqlBulkCopy时应注意Sqlserver表中利用缺省值的列
  • 在SQL Server中利用SQL语句查询一个存储历程被别的全部的存储历程引用的存储历程名
  • 教你怎么利用sql游标实例分享
  • 利用Squid集群配合Dnspod成立双线镜像
  • 利用SQL Loader导入大量数据,避免利用SQL频繁写库的办法
  • ado若何利用sql函数?
  • WIN2000下利用SQL Server错误一例
  • 利用SQL Mail收发和自动处理邮件
  • 精确配置和利用SQL mail
  • 利用SQL Server 7.0成立一个安全的数据库的最好办法是什么?
  • 利用SQL-DMO备份数据库并举行校验
  • 利用sqlcmd在批处理脚本中履行SQL
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .