无需ODC文件,如何在MS Word中查询SQL Server数据库?
无需依赖ODC文件在Word中通过DATABASE域导入SQL Server数据?
问题概述
我目前通过Word的DATABASE域代码导入SQL Server数据,做法是按Ctrl+F9生成域括号,插入带ODC文件路径的代码后按F9执行查询生成表格。但这种方式依赖本地ODC文件,希望团队同事无需配置该文件就能使用,同时支持O365 SharePoint/Power Automate自动化更新。
当前使用的域代码
DATABASE \d "C:\Users\MyUser\Documents\My Data Sources\MyDataSource.odc" \c "DRIVER={SQL Server};SERVER=MYSERVER;DATABASE=MYDB;Trusted_Connection=Yes;" \s "SELECT TOP 1 Id FROM MyTable"
现有ODC文件内容
<xml id=docprops><o:DocumentProperties xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40"> <o:Description>MyDescription</o:Description> <o:Name>MyName</o:Name> </o:DocumentProperties> </xml><xml id=msodc><odc:OfficeDataConnection xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns="http://www.w3.org/TR/REC-html40"> <odc:Connection odc:Type="ODBC"> <odc:ConnectionString>{SQL Server};SERVER=MYSERVER;DATABASE=MYDB;Trusted_Connection=yes;</odc:ConnectionString> <odc:CommandType>Table</odc:CommandType> <odc:AlwaysUseConnectionFile/> </odc:Connection> </odc:OfficeDataConnection> </xml>
核心疑问
根据DATABASE域代码文档,\d开关适用于除ODBC查询SQL数据库之外的所有数据库查询,但文档仅提供了文件型数据库的示例,未明确SQL Server的用法。请问是否可以完全不指定ODC文件实现数据导入?
补充:我已验证过连接字符串的有效性——在Excel的Get & Transform(Power Query)中使用以下代码可成功获取数据:
= Odbc.Query("Driver={SQL Server};Server=MYSERVER;Database=MYDB", "SELECT TOP 1 Id FROM MyTable")
解决方案:移除\d开关,直接使用ODBC连接字符串
对于SQL Server这类ODBC兼容的数据源,不需要依赖ODC文件,只需保留\c(连接字符串)和\s(查询语句)参数即可。
修改后的域代码
DATABASE \c "DRIVER={SQL Server};SERVER=MYSERVER;DATABASE=MYDB;Trusted_Connection=Yes;" \s "SELECT TOP 1 Id FROM MyTable"
关键注意事项
- 驱动兼容性:确保所有使用该文档的设备都安装了SQL Server ODBC驱动(Office默认自带基础版本,若需适配高版本SQL Server,可下载对应驱动)
- 身份验证方式:
- 若用Windows集成验证(当前示例),需确保用户账户有SQL Server的访问权限
- 若用SQL Server身份验证,可修改连接字符串为:
DRIVER={SQL Server};SERVER=MYSERVER;DATABASE=MYDB;UID=你的用户名;PWD=你的密码;(注意密码明文存储的安全风险,优先推荐集成验证)
- 自动化场景适配:在SharePoint/Power Automate中执行时,需确保运行环境具备ODBC驱动权限,且连接字符串的身份验证方式与自动化服务账户匹配
内容的提问来源于stack exchange,提问作者alazyworkaholic
相关产品推荐
相关产品推荐

