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

如何在PowerShell中无需Invoke-sqlcmd及sqlserver模块执行SQL脚本(SQL身份验证)

无需SQLServer模块实现PowerShell SQL身份验证执行SQL脚本

场景:需要在PowerShell中运行SQL脚本,工作电脑无管理员权限无法安装SQLServer模块,只能使用SQL身份验证,而多数方案依赖Invoke-SqlCmd或Windows身份验证,寻求替代方案。

解决方案

直接利用.NET框架内置的System.Data.SqlClient类库实现,无需安装任何额外模块,只需在连接字符串中配置SQL身份验证的账号密码即可。

代码示例

执行查询类SQL脚本

# 替换为你的SQL脚本内容
$sqlScript = @"
SELECT * FROM YourTargetTable;
"@

# 配置SQL身份验证连接字符串
$connectionString = "Server=你的数据库服务器地址;Database=目标数据库名称;User ID=SQL登录账号;Password=SQL登录密码;Trusted_Connection=False;"

try {
    # 初始化数据库连接
    $dbConnection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
    $dbConnection.Open()

    # 创建SQL命令对象
    $sqlCommand = New-Object System.Data.SqlClient.SqlCommand($sqlScript, $dbConnection)
    # 使用SqlDataAdapter填充结果到DataSet
    $dataAdapter = New-Object System.Data.SqlClient.SqlDataAdapter($sqlCommand)
    $dataSet = New-Object System.Data.DataSet
    $dataAdapter.Fill($dataSet) | Out-Null

    # 输出查询结果
    $dataSet.Tables[0] | Format-Table -AutoSize
}
catch {
    Write-Error "执行SQL脚本失败: $_"
}
finally {
    # 确保数据库连接关闭
    if ($dbConnection.State -eq 'Open') {
        $dbConnection.Close()
    }
}

执行非查询类SQL脚本(如INSERT/UPDATE/DELETE)

如果是执行不需要返回结果的脚本,可以改用ExecuteNonQuery()方法:

# 替换为你的非查询SQL脚本
$sqlScript = "INSERT INTO YourTargetTable (Column1, Column2) VALUES ('Value1', 'Value2');"

# 连接字符串配置同上
$connectionString = "Server=你的数据库服务器地址;Database=目标数据库名称;User ID=SQL登录账号;Password=SQL登录密码;Trusted_Connection=False;"

try {
    $dbConnection = New-Object System.Data.SqlClient.SqlConnection($connectionString)
    $dbConnection.Open()

    $sqlCommand = New-Object System.Data.SqlClient.SqlCommand($sqlScript, $dbConnection)
    $affectedRows = $sqlCommand.ExecuteNonQuery()
    Write-Host "脚本执行完成,影响行数: $affectedRows"
}
catch {
    Write-Error "执行SQL脚本失败: $_"
}
finally {
    if ($dbConnection.State -eq 'Open') {
        $dbConnection.Close()
    }
}

关键说明

  • Trusted_Connection=False 是核心配置,明确指定使用SQL身份验证而非Windows集成身份验证
  • 所有操作依赖.NET内置类,无需管理员权限安装任何模块
  • 脚本执行过程中记得捕获异常,避免连接未正常关闭

内容的提问来源于stack exchange,提问作者Red And Black

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:05:21