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

带连字符的Azure SQL数据库Python连接问题排查

解决Azure SQL带连字符数据库的Python连接问题

你的问题不是权限问题,核心是连接字符串中数据库名的转义方式错误:

  • 第一个错误原因:数据库名包含连字符(属于SQL标识符特殊字符),直接写database-name时,ODBC驱动会将连字符解析为语法符号,触发SQL语法错误。
  • 第二个错误原因:用[database-name]作为Database参数值时,驱动会把带方括号的字符串当成实际数据库名称去查找,但你的真实数据库名是database-name,所以提示找不到数据库——和权限无关,毕竟SSMS能正常登录已经证明权限没问题。

正确的解决方法是在ODBC连接字符串中,用双引号包裹带特殊字符的数据库名,同时适配Python字符串的转义规则:

示例连接字符串(二选一即可)

  1. 用双引号包裹整个字符串,内部数据库名用转义双引号:
conn_str = "Driver={ODBC Driver 18 for SQL Server};Server=serveraddress;Database=\"database-name\";UID=username;PWD=password;"
  1. 用单引号包裹整个字符串,内部数据库名直接用双引号:
conn_str = 'Driver={ODBC Driver 18 for SQL Server};Server=serveraddress;Database="database-name";UID=username;PWD=password;'

这样驱动就能正确识别数据库名database-name,不会再出现语法错误或找不到数据库的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:40:36