sqlcmd命令执行大的SQL脚本
前言
这两天从服务器导出一个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语法
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