Azure Databricks连接带命名实例的SQL Server语法问题咨询
连接Azure Databricks到带命名实例的SQL Server的正确语法
方法1:使用完整JDBC URL替代host和port参数
连接SQL Server命名实例时,最稳妥的方式是直接指定完整JDBC URL,规避反斜杠转义问题。修改后的代码如下:
DROP TABLE IF EXISTS sqlserver_table; CREATE TABLE sqlserver_table USING sqlserver OPTIONS ( dbtable 'dbo.tablename', url 'jdbc:sqlserver://hostname:56883;databaseName=databasename;instanceName=INSTANCE01', user 'username', password 'password' );
方法2:通过instanceName参数配合host(依赖SQL Browser服务)
如果你的SQL Server实例使用动态端口且SQL Browser服务正常运行,可以省略port参数,改用instanceName单独配置:
DROP TABLE IF EXISTS sqlserver_table; CREATE TABLE sqlserver_table USING sqlserver OPTIONS ( dbtable 'dbo.tablename', host 'hostname', instanceName 'INSTANCE01', database 'databasename', user 'username', password 'password' );
错误原因说明
- 直接在
host中写hostname\INSTANCE01时,反斜杠会被解析丢失,导致驱动尝试连接hostnameINSTANCE01这个无效主机。 - 转义反斜杠后触发URI错误,是因为JDBC URL不允许未转义的反斜杠,而通过
url参数指定完整JDBC串时,驱动会正确处理实例名配置。
内容的提问来源于stack exchange,提问作者Bee_Riii
相关产品推荐
相关产品推荐

