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

Linux版SQL Server Docker中SQLCMD执行建库命令失败如何解决?

问题原因

你的报错由Shell参数拆分逻辑导致:

  • 定义query变量时额外嵌套了一层单引号
  • 调用sqlcmd时没有给$query变量加双引号包裹

Shell执行命令时会按空格将create database $ModuleName拆分为多个独立参数,-Q参数仅接收到了'create,后续的database被sqlcmd识别为未知参数,触发报错。

修正方案

直接调整command.sh的写法即可,无需调用.sql文件,完全支持动态环境变量生成查询:

#!/bin/bash
echo 'creating database from ->' $ModuleName
# 直接定义查询语句,不需要额外嵌套内层单引号
query="create database $ModuleName"
echo $query
# 调用时给$query加双引号,保证整个查询作为单个参数传入sqlcmd
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "my_strong_password" -Q "$query"
额外说明

如果后续查询涉及字符串类型的变量值,需要在查询语句里加单引号的,直接写在双引号包裹的query定义里即可,参考示例:

# 带字符串条件的查询示例
query="select * from users where username = '$UserName'"
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "my_strong_password" -Q "$query"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 06:24:04