Sql Command实用工具

使用sqlcmd实用工具
本文介绍如何使用sqlcmd实用工具来运行Transact-SQL语句和脚本,包括连接SQL Server实例、执行脚本文件并将输出保存到文本文件中。此外还介绍了如何在脚本中使用变量。

     你可以使用sqlcmd 实用工具来运行特殊的Transact-SQL语句和脚本.
     首先启动sqlCMD.(
             1:单击“开始”,依次指向“所有程序”、“附件”,再单击“命令提示符”。闪烁的下划线字符即为命令提示符。
             2:在命令提示符处,键入 sqlcmd。按 ENTER 键。
             3:终止(exit)
       如果连接的时候,你需要指定sql server 实例名,请用-s 选项. 如:sqlcmd -s mysqlname;
       (Tip):一般我们是用windows验证来登陆,如果用sql 验证方式来登录,请启用-u和-p选项 如:sqlcmd -s mysqlname -u userID -p userpwd

      下面我们通过例子来看怎么使用sqlcmd.
       创建一下sql script .保存为txt文件(c:myScript.sql)

.USE AdventureWorks
GO
SELECT
 c.FirstName + ' ' + c.LastName AS 'Employee Name',
a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode 

FROM  Person.Contact  AS  c 
INNER   JOIN  HumanResources.Employee  AS  e 
ON  c.ContactID  =  e.ContactID
INNER   JOIN  HumanResources.EmployeeAddress ea  ON  
ea.EmployeeID 
=  e.EmployeeID
INNER   JOIN  Person.Address  AS  a  ON  a.AddressID  =  ea.AddressID
GO
运行脚本文件
  1. 打开命令提示符窗口。

  2. 在命令提示符窗口中,键入 sqlcmd -S myServer -i C:\myScript.sql。

  3. 按 Enter 键。

AdventureWorks 员工的姓名和地址列表便会输出到命令提示符窗口。

将此输出保存到文本文件中
  1. 打开命令提示符窗口。

  2. 在命令提示符窗口中,键入 sqlcmd -S myServer -i C:\myScript.sql -o C:\EmpAdds.txt。

  3. 按 Enter。

命令提示符窗口中不会生成任何输出,而是将输出发送到 EmpAdds.txt 文件。您可以打开 EmpAdds.txt 文件来查看此输出操作。

当然你也可以输出为excel等文件

 

在脚本中使用变量

SQLCMD支持可以在脚本中接收用户传入的变量信息,如下面语句:

SET NOCOUNT ON
                                    Select $(Cols) from $(tablename)
                                    GO

上面语句请求2个参数,我们可以通过指定相应的参数信息传给脚本,如下:

C:sqlcmd>sqlcmd -i test.sql -o Output.txt
                                        -v cols="name,object_id,create_date" tablename="sys.objects"

上面语句的用途是:执行TEST.SQL脚本文件,并把输出的信息输出到OUTPUT.TXT文件中,并分别指定了COLS,TABLENAME的参数值

4、在脚本中设置变量的值

除了通过外部传入参数的值外,还可以在内部设置参数的值,如下面例子

e:sqlcmdbackuptemplate.sql
                                            use master
                                            backup database [$(db)] to disk='$(file)'
                                            e:sqlcmdbackupsingle.sql
                                            :setvar db msdb
                                            :setvar file c:tempmsdb.bak
                                            :r e:sqlcmdbackuptemplate.sql

如果你想知道当然定义了哪些变量,可以使用:listvar命令来显示

主要命令汇总:

:r filename
                                                :ServerList
                                                :List
                                                :Listvar
                                                :Error filename | STDOUT | STDERR
                                                :Out filename | STDOUT | STDERR
                                                :Perftrace filename | STDOUT | STDERR
                                                :Connect server[instance] [timeout] [user_name[password] ]
                                                :On Error [exit | ignore]
                                                :SetVar variable value
                                                :Help:XML ON | OFF

主要环境变量汇总:

-a SQLCMDPACKETSIZE
                                                    -d SQLCMDDBNAME
                                                    -H SQLCMDWORKSTATION
                                                    -h SQLCMDHEADERS
                                                    -l SQLCMDLOGINTIMEOUT
                                                    -m SQLCMDERRORLEVEL
                                                    -P SQLCMDPASSWORD
                                                    -S SQLCMSSERVER
                                                    -s SQLCMDCOLSEP
                                                    -t SQLCMDSTATTIMEOUT
                                                    -U SQLCMDUSER
                                                    -w SQLCMDCOLWIDTH

转载于:https://www.cnblogs.com/mqsuper/articles/1290497.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值