你可以使用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 实用工具来运行特殊的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
运行脚本文件
-
打开命令提示符窗口。
-
在命令提示符窗口中,键入 sqlcmd -S myServer -i C:\myScript.sql。
-
按 Enter 键。
AdventureWorks 员工的姓名和地址列表便会输出到命令提示符窗口。
将此输出保存到文本文件中
-
打开命令提示符窗口。
-
在命令提示符窗口中,键入 sqlcmd -S myServer -i C:\myScript.sql -o
C:\EmpAdds.txt。
-
按 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
|
|
|