You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell执行Azure MI存储过程报错:Invoke-Sqlcmd未识别

解决PowerShell执行Azure SQL托管实例存储过程的问题

错误原因

'Invoke-Sqlcmd' is not recognized as the name of a cmdlet这个错误,本质是你的PowerShell环境没装SqlServer模块——Invoke-Sqlcmd是这个模块里的命令,默认不会自带。

解决步骤

1. 安装SqlServer模块

先以管理员身份打开PowerShell,运行下面的命令:

Install-Module -Name SqlServer -AllowClobber -Force
  • 如果弹出NuGet未安装的提示,直接确认安装就行。
  • 要是遇到执行策略限制的报错,先跑Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,按提示确认后再装模块。

2. 修正执行命令的参数

你原来的Invoke-Sqlcmd里-ServerInstance只填了实例名,Azure SQL托管实例需要用完整的FQDN(比如MI.database.windows.net),另外用连接字符串更省心,直接改代码成这样:

$managedInstanceName = "MI"
$databaseName = "DB"
$serverAdminLogin = "t1"
$serverAdminPassword = "t1"
$query = "EXECUTE dbo.SP1"

# 构造完整的连接字符串
$connectionString = "Server=tcp:$managedInstanceName.database.windows.net,1433;Database=$databaseName;User ID=$serverAdminLogin;Password=$serverAdminPassword;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# 用连接字符串执行存储过程
Invoke-Sqlcmd -ConnectionString $connectionString -Query $query

3. 额外要检查的点

  • 确认你的机器能连上Azure SQL托管实例:检查实例的防火墙规则、私有端点配置,确保网络通路正常。
  • 如果要用Azure AD账号登录,把连接字符串里的账号密码部分换成Authentication=ActiveDirectoryPassword,再对应调整参数就行。

内容的提问来源于stack exchange,提问作者user112359

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:33:39