菜鸟科技网

如何用命令打开SQL Server?

使用 sqlcmd (最常用)

sqlcmd 是 SQL Server 官方提供的命令行实用工具,它允许您直接在命令提示符或 PowerShell 中连接到 SQL Server 并执行 T-SQL 语句,这是最核心、最强大的方法。

如何用命令打开SQL Server?-图1
(图片来源网络,侵删)

基本连接命令

打开 命令提示符 (CMD)PowerShell,然后输入以下命令:

sqlcmd -S 服务器名 -U 用户名 -P 密码

参数说明:

  • -S (Server): 指定要连接的 SQL Server 实例。
    • 对于默认实例:-S localhost-S .
    • 对于命名实例:-S localhost\SQLEXPRESS (您的实例名是 SQLEXPRESS)
    • 对于远程服务器:-S 192.168.1.100
  • -U (User): 登录用户名。
    • 对于 Windows 身份验证:通常不需要 -U-P
    • 对于 SQL Server 身份验证:使用您的 SQL 登录名,如 sa
  • -P (Password): 对应的密码。
    • 安全提示:在命令行中直接输入密码可能会被记录在历史记录中,存在安全风险,建议使用 -E (信任连接) 或通过提示输入密码。

连接示例

示例 1:使用 Windows 身份验证连接到本地默认实例 这是最推荐的方式,因为它更安全。

sqlcmd -S localhost
# 或者
sqlcmd -S .

示例 2:使用 SQL Server 身份验证连接到本地命名实例 (SQLEXPRESS)

如何用命令打开SQL Server?-图2
(图片来源网络,侵删)
sqlcmd -S localhost\SQLEXPRESS -U sa -P YourStrong!Password123

示例 3:连接到远程服务器

sqlcmd -S 192.168.1.100 -U sa -P YourStrong!Password123

sqlcmd 中执行命令

成功连接后,您会看到 1> 提示符,现在您可以输入 T-SQL 语句了。

-- 查看所有数据库
SELECT name FROM sys.databases;
GO
-- 切换到 master 数据库
USE master;
GO
-- 查看当前数据库
SELECT DB_NAME();
GO
-- 退出 sqlcmd
QUIT

GO 的作用: GOsqlcmd 的一个命令分隔符,表示将之前的所有 T-SQL 语句作为一个批次发送给 SQL Server 执行。


使用 PowerShell (更现代的交互方式)

如果您是 PowerShell 用户,可以使用 Invoke-Sqlcmd cmdlet,它提供更丰富的脚本功能。

如何用命令打开SQL Server?-图3
(图片来源网络,侵删)

安装 SQL Server PowerShell 模块

如果尚未安装,请先在 PowerShell (以管理员身份运行) 中运行:

Install-Module -Name SqlServer -Scope CurrentUser -Force

连接和执行命令

连接方式与 sqlcmd 类似,但语法不同。

# 定义连接参数
$serverInstance = "localhost\SQLEXPRESS"
$database = "master"
$username = "sa"
$password = "YourStrong!Password123" | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
# 执行查询并显示结果
$query = "SELECT name FROM sys.databases;"
Invoke-Sqlcmd -ServerInstance $serverInstance -Database $database -Credential $credential -Query $query | Format-Table

启动/停止 SQL Server 服务 (管理员权限)

有时候您需要从命令行管理 SQL Server 服务的运行状态(在部署脚本中),这需要管理员权限。

使用 net 命令 (通用,但已不推荐)

# 启动 SQL Server 服务 (默认实例)
net start MSSQLSERVER
# 启动 SQL Server 服务 (命名实例,如 SQLEXPRESS)
net start MSSQL$SQLEXPRESS
# 停止服务
net stop MSSQL$SQLEXPRESS

使用 sc 命令 (更强大,推荐)

# 启动服务
sc start MSSQL$SQLEXPRESS
# 停止服务
sc stop MSSQL$SQLEXPRESS
# 查询服务状态
sc query MSSQL$SQLEXPRESS

使用 PowerShell (最现代的方式)

# 启动服务
Start-Service -Name "MSSQL$SQLEXPRESS"
# 停止服务
Stop-Service -Name "MSSQL$SQLEXPRESS"
# 获取服务状态
Get-Service -Name "MSSQL$SQLEXPRESS"

使用 osql (旧版工具)

osqlsqlcmd 的前身,功能较少,且已在 SQL Server 2012 中弃用。除非您必须维护非常旧的脚本,否则请使用 sqlcmd

osql -S localhost -U sa -P YourPassword

总结与快速参考

目的 工具 命令示例 备注
连接并交互执行SQL sqlcmd sqlcmd -S localhost\SQLEXPRESS -U sa -P Pass@123 最常用、最核心的工具。
连接并交互执行SQL PowerShell Import-Module SqlServer; Invoke-Sqlcmd -ServerInstance . -Query "SELECT 1" 适合PowerShell脚本自动化。
启动/停止服务 sc / PowerShell sc start MSSQL$SQLEXPRESSStart-Service "MSSQL$SQLEXPRESS" 需要管理员权限。
执行单条SQL并退出 sqlcmd sqlcmd -S . -Q "SELECT GETDATE()" -Q 表示执行后退出,适合脚本。
执行SQL脚本文件 sqlcmd sqlcmd -S . -i C:\scripts\my_script.sql -i 指定输入脚本文件路径。

新手建议:

  1. sqlcmd 开始,这是最基础也是最重要的工具。
  2. 确保您知道您的 SQL Server 实例名称(是默认实例还是 SQLEXPRESS 这样的命名实例)。
  3. 优先使用 Windows 身份验证 (sqlcmd -S .),如果需要 SQL Server 身份验证,请确保用户名和密码正确。
分享:
扫描分享到社交APP
上一篇
下一篇