如何在 PYPYODBC 中输入服务器名称中有反斜杠的 SQL 服务器名称?

How do I enter a SQL Server Name in PYPYODBC which has a backslash in the server name?

我在尝试连接到 pypyodbc 中的 SQL 服务器实例时遇到困难。服务器名称中有一个反斜杠,例如 "servername\something",而不仅仅是服务器名称。

在 pypyodbc 中,我尝试了所有不同的变体,

Server=servername\something
Server=servername\something
Server=[servername\something]
Server=[servername\something]

但其中 none 似乎有效。我收到以下错误消息

pypyodbc.DatabaseError: ('08001', '[08001] [Microsoft][ODBC SQL 服务器驱动程序][DBNETLIB]SQL 服务器不存在或访问被拒绝。')

如何传递服务器名称?

我可以正常连接到其他服务器,只要它们没有反斜杠

Microsoft ODBC driver documentation 中所示,对于连接字符串

中的 Server= 参数

To specify a named instance of SQL Server, append \InstanceName.

所以问题确实是 "How to get a single backslash into a Python string?"

一种方法是使用原始字符串文字 (r"")。这对我有用:

conn_str = (
    r"Driver={ODBC Driver 11 for SQL Server};"
    r"Server=PANORAMA\SQLEXPRESS;"
    r"Database=myDb;"
    r"Trusted_Connection=yes;"
    )
conn = pypyodbc.connect(conn_str)