sqlcmd 实用工具 - SQL Server | Microsoft Learn
在 Microsoft SQL Server 2012 中,可以使用 sqlcmd
命令行工具来执行 Transact-SQL 脚本和命令。这个工具提供了一种在命令行下管理和操作 SQL Server 的便捷方式。以下是一些 sqlcmd
命令的实例用法:
连接到 SQL Server 实例
bashCopy Codesqlcmd -S YourServer\InstanceName -U Username -P Password
这个命令用于连接到指定的 SQL Server 实例。替换 YourServer\InstanceName
、Username
和 Password
分别为你的 SQL Server 实例名称、登录用户名和密码。
执行查询
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT TOP 10 * FROM YourTable"
这个命令连接到 YourServer
上的默认数据库,并执行指定的查询。
执行 SQL 脚本文件
bashCopy Codesqlcmd -S YourServer -d YourDatabase -i C:\Path\To\YourScript.sql
这个命令执行指定路径下的 SQL 脚本文件 YourScript.sql
,在连接的 YourDatabase
数据库上运行脚本。
输出结果到文件
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM YourTable" -o C:\Path\To\OutputFile.txt
这个命令执行查询并将结果输出到指定的文件 OutputFile.txt
中。
执行存储过程
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "EXEC YourStoredProcedure"
这个命令执行指定的存储过程 YourStoredProcedure
。
列出可用的数据库
bashCopy Codesqlcmd -S YourServer -Q "SELECT name FROM sys.databases"
这个命令列出 YourServer
上所有可用的数据库。
使用变量
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM YourTable WHERE ColumnName = '$(VariableName)'"
这个命令中使用了 $()
语法来引用变量 VariableName
的值。
设置超时时间
bashCopy Codesqlcmd -S YourServer -d YourDatabase -t 30 -Q "SELECT * FROM YourTable"
这个命令设置查询的超时时间为 30 秒。
这些示例展示了如何使用 sqlcmd
命令行工具在 SQL Server 2012 中执行各种任务,包括连接到服务器、执行查询、运行脚本、输出结果等操作。
使用 -Q
参数执行多条语句
bashCopy Code
sqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM Table1; SELECT * FROM Table2"
这个命令执行两个连续的查询,分别从 Table1
和 Table2
中选择数据。
执行批处理模式
bashCopy Codesqlcmd -S YourServer -d YourDatabase -i C:\Path\To\YourBatchFile.sql -b
这个命令执行指定的批处理文件 YourBatchFile.sql
,并以批处理模式运行。
设置输出的列分隔符和行分隔符
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT Column1, Column2 FROM YourTable" -s "," -w 700 -h -1
这个命令设置输出的列分隔符为逗号(,
),设置宽度选项 -w
为 700 字符,禁用行分隔符 -h -1
。
使用 Windows 身份验证连接
bashCopy Codesqlcmd -S YourServer -d YourDatabase -E
这个命令使用当前 Windows 用户的身份验证连接到 SQL Server。
列出可用的命令选项
bashCopy Codesqlcmd -?
这个命令列出 sqlcmd
命令行工具的所有可用选项和帮助信息。
退出 sqlcmd
命令行工具
sqlCopy Code
EXIT
在 sqlcmd
命令行工具中,输入 EXIT
可以退出当前的 sqlcmd
会话。
这些示例展示了如何使用 sqlcmd
命令行工具在 SQL Server 2012 中执行更多高级的操作,包括执行多条语句、批处理模式、自定义输出格式等。 sqlcmd
提供了丰富的功能和选项,适合于各种管理和操作数据库的需求。
使用 -r
参数设置结果文件格式
bashCopy Code
sqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM YourTable" -r 1 -o C:\Path\To\OutputFile.txt
这个命令设置输出文件格式为包含列名的行(-r 1
),并将查询结果输出到指定的文件 OutputFile.txt
中。
设置连接超时时间
bashCopy Codesqlcmd -S YourServer -d YourDatabase -l 30
这个命令设置连接到 SQL Server 的超时时间为 30 秒。
执行包含 GO 命令的脚本
bashCopy Codesqlcmd -S YourServer -d YourDatabase -i C:\Path\To\YourScript.sql -b
这个命令执行包含 GO
命令分隔的 SQL 脚本文件 YourScript.sql
,并以批处理模式运行。
使用环境变量
bashCopy Codesqlcmd -S $(ServerName) -d $(DatabaseName) -U $(Username) -P $(Password)
这个命令使用环境变量来动态设置连接的服务器名、数据库名、用户名和密码。
使用 SQL Server 身份验证连接
bashCopy Codesqlcmd -S YourServer -d YourDatabase -U YourUsername -P YourPassword
这个命令使用指定的 SQL Server 身份验证用户名和密码连接到 SQL Server。
设置输出编码格式
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM YourTable" -f 65001
这个命令设置输出文件的编码格式为 UTF-8 (-f 65001
),适合处理包含非拉丁字符的数据。
这些进一步的示例展示了如何在使用 sqlcmd
命令行工具时,根据具体需求设置不同的选项和参数,以便更有效地管理和操作 SQL Server 数据库。
使用变量和占位符
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM YourTable WHERE Column1 = $(Value)" -v Value="YourCriteria"
这个命令使用变量 -v
和占位符 $(Value)
,允许动态设置查询条件,例如根据 Column1
的值为 YourCriteria
进行筛选。
设置输出的行数限制
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT TOP 100 * FROM YourTable"
这个命令设置查询结果的行数限制为最多返回前 100 条记录,使用 TOP
关键字实现。
执行存储过程
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "EXEC YourStoredProcedure"
这个命令执行名为 YourStoredProcedure
的存储过程。
显示详细错误信息
bashCopy Codesqlcmd -S YourServer -d YourDatabase -V 10
这个命令设置详细性级别为 10,以便显示更详细的错误信息和调试信息。
设置连接的语言环境
bashCopy Codesqlcmd -S YourServer -d YourDatabase -l 30 -L Japanese
这个命令设置连接的语言环境为日语 (Japanese
),并设置连接超时时间为 30 秒 (-l 30
)。
使用特定的配置文件
bashCopy Codesqlcmd -S YourServer -d YourDatabase -i C:\Path\To\YourScript.sql -I C:\Path\To\YourConfigFile.ini
这个命令使用指定的配置文件 YourConfigFile.ini
来配置 sqlcmd
的行为,例如设置连接属性、输出格式等。
这些进一步的示例展示了如何根据具体的需求和情况,使用 sqlcmd
命令行工具的不同选项和功能来操作和管理 SQL Server 数据库。
设置查询结果的输出格式
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM YourTable" -y 0 -Y 0
这个命令设置查询结果的输出格式,其中 -y 0
禁用特殊字符转义,-Y 0
禁用列名头部和分隔线。
执行动态 SQL 语句
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "EXEC(@YourDynamicSQL)"
这个命令执行动态生成的 SQL 语句,@YourDynamicSQL
是一个变量或者参数,包含要执行的动态 SQL。
设置登录超时时间
bashCopy Codesqlcmd -S YourServer -d YourDatabase -l 60
这个命令设置登录到 SQL Server 的超时时间为 60 秒。
指定输出文件的格式
bashCopy Codesqlcmd -S YourServer -d YourDatabase -Q "SELECT * FROM YourTable" -o C:\Path\To\OutputFile.csv -s"," -W
这个命令将查询结果输出到 OutputFile.csv
文件中,设置字段分隔符为逗号 (-s","
),并且禁用空格填充 (-W
)。
执行包含 GO 命令的脚本文件
bashCopy Codesqlcmd -S YourServer -d YourDatabase -i C:\Path\To\YourScript.sql -b -h-1
这个命令执行包含 GO
命令的 SQL 脚本文件 YourScript.sql
,使用批处理模式 (-b
),并且禁用头部消息 (-h-1
)。
连接使用 Windows 身份验证
bashCopy Codesqlcmd -S YourServer -d YourDatabase -E
这个命令使用当前 Windows 用户的身份验证方式连接到 SQL Server (-E
)。
这些示例展示了如何在使用 sqlcmd
命令行工具时,根据具体需求设置不同的选项和参数,以便更有效地操作和管理 SQL Server 数据库。
标签:YourServer,Code,YourDatabase,bashCopy,Server,sqlcmd,SQL From: https://www.cnblogs.com/suv789/p/18285047