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

未指定-S选项时osql与sqlcmd默认连接服务器的位置及机制问询

osql与sqlcmd无-S选项时的服务器解析及用户连接差异

测试场景及执行结果

1. 列出网络上所有可用服务器

  • osql -L -- 返回网络上所有服务器,但不包含其默认连接的服务器
  • sqlcmd -L -- 返回与上述相同的列表

2. 不使用-S选项连接默认服务器

  • osql -E -d dbname -Q "select current_user" -- 未返回当前用户,而是返回SQL Server中配置的一个用户(该用户存在于Windows注册表中,但不确定osql为何及如何选择它)
  • sqlcmd -E -d dbname -Q "select current_user" -- 报错:Named pipes provider: Could not open connection to SQL Server

3. 使用服务器名称及-S选项连接

  • osql -E -S servername -d dbname -Q "select current_user" -- 输出与第2点相同
  • sqlcmd -E -S servername -d dbname -Q "select current_user" -- 返回执行该查询的系统登录ID

4. 远程执行命令

  • osql -E -d dbname -Q "select current_user" -- 输出与第2点相同
  • sqlcmd -E -s servername -d dbname -Q "select current_user" -- 报错:Login failed for computername(其中computername为实际Windows计算机名称)

我已为此钻研多日,想弄清osql的工作机制,以便迁移至sqlcmd。

编辑1: 确认不存在OSQLSERVER环境变量


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:53:23