前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >sqlcmd命令执行大的SQL脚本

sqlcmd命令执行大的SQL脚本

作者头像
ccf19881030
发布2020-03-02 14:51:51
3.6K0
发布2020-03-02 14:51:51
举报
文章被收录于专栏:ccf19881030的博客

前言

这两天从服务器导出一个150多MB的脚本文件,导入到我本地的SQLServer数据库中时,直接打开执行提示内存不足的错误,于是google搜索发现微软针对此类情况有不少命令行工具,其中有一款sqlcmd 实用工具,官方文档地址为:sqlcmd 实用工具 sqlcmd 实用工具是一个命令行实用工具,用于 Transact-SQL 语句和脚本的临时、交互执行以及自动执行 Transact-SQL 脚本撰写任务。 若要以交互方式使用 sqlcmd ,或要生成可使用 sqlcmd运行的脚本文件,用户需要了解 Transact-SQL。 通常以下列方式使用 sqlcmd 实用工具

  • 用户输入 Transact-SQL 语句,输入方式与在命令提示符下输入的方式类似。 结果将显示在命令提示符处。 若要打开命令提示符窗口,请在 Windows 搜索中输入“cmd”,然后单击“命令提示符”将其打开 。 在命令提示符处,键入 sqlcmd ,后面跟随所需的选项列表。 有关 sqlcmd支持的选项的完整列表,请参阅 sqlcmd 实用工具
  • 用户通过下列方式提交 sqlcmd 作业:指定要执行的单个 Transact-SQL 语句,或将实用工具指向要执行的 Transact-SQL 语句所在的文本文件。 输出通常定向到一个文本文件,但也可能在命令提示符处显示。
  • 查询编辑器中的 SQLCMD 模式 SQL Server Management Studio 。
  • SQL Server 管理对象 (SMO)
  • SQL Server 代理 CmdExec 作业。

常用 sqlcmd 选项

  • 服务器选项 (-S ),用于标识 sqlcmd 连接到的 Microsoft SQL Server 的实例。
  • 身份验证选项(-E、-U 和 -P),用于指定 sqlcmd 连接到 SQL Server 实例所使用的凭据 。 注意: -E 选项为默认选项,无需指定。
  • 输入选项(-Q、-q 和 -i),用于标识 sqlcmd 输入的位置 。
  • 输出选项 (-o),用于指定 sqlcmd 输出所在的文件 。

sqlcmd语法

代码语言:javascript
复制
sqlcmd   
 -a packet_size  
 -A (dedicated administrator connection)  
 -b (terminate batch job if there is an error)  
 -c batch_terminator  
 -C (trust the server certificate)  
 -d db_name  
 -e (echo input)  
 -E (use trusted connection)  
 -f codepage | i:codepage[,o:codepage] | o:codepage[,i:codepage] 
 -g (enable column encryption) 
 -G (use Azure Active Directory for authentication)
 -h rows_per_header  
 -H workstation_name  
 -i input_file  
 -I (enable quoted identifiers)  
 -j (Print raw error messages)
 -k[1 | 2] (remove or replace control characters)  
 -K application_intent  
 -l login_timeout  
 -L[c] (list servers, optional clean output)  
 -m error_level  
 -M multisubnet_failover  
 -N (encrypt connection)  
 -o output_file  
 -p[1] (print statistics, optional colon format)  
 -P password  
 -q "cmdline query"  
 -Q "cmdline query" (and exit)  
 -r[0 | 1] (msgs to stderr)  
 -R (use client regional settings)  
 -s col_separator  
 -S [protocol:]server[instance_name][,port]  
 -t query_timeout  
 -u (unicode output file)  
 -U login_id  
 -v var = "value"  
 -V error_severity_level  
 -w column_width  
 -W (remove trailing spaces)  
 -x (disable variable substitution)  
 -X[1] (disable commands, startup script, environment variables, optional exit)  
 -y variable_length_type_display_width  
 -Y fixed_length_type_display_width  
 -z new_password   
 -Z new_password (and exit)  
 -? (usage)

使用sqlcmd命令执行大的脚本文件

假如我有一个input.sql的脚本,超过100多MB,本地SQLServer服务器地址为localhost,账号为sa,密码为123456,数据库名称为testDB,需要将脚本导入到testDB中,打开终端,进入到input.sql脚本所在目录(比如说D:/test),执行如下命令:

代码语言:javascript
复制
sqlcmd -S localhost -U sa -P 123456 -d testDB -i input.sql

具体的参数描述可以参考官网:sqlcmd - 使用实用工具 当然在命令行中直接使用sqlcmd -?也可以查看相关参数的用法,如下图所示:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/02/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 常用 sqlcmd 选项
  • sqlcmd语法
  • 使用sqlcmd命令执行大的脚本文件
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档