我正在尝试设置文件DSN,以便将数据从本地Access数据库导出到云Azure SQL数据库。
我已按照here的说明创建了DSN。
当我测试到数据库的连接成功时,它“起作用”。
但是,它默认将数据库设置为“ master”,而我想使用“ mydatabase”。 “更改默认数据库”下拉列表仅包含主数据库,不会显示mydatabase,因此无法对其进行更改。
因此,如果我使用默认设置,则会收到错误消息,即master中的CREATE TABLE被拒绝。
我通过记事本在File DSN中进行了编辑,以包括“ DATABASE = mydatabase”行,但随后出现错误:“此操作不支持引用'master ... sysdatabases'中的数据库和/或服务器名称版本的SQL Server。
如何设置它以指定正确的数据库并使其正常工作?
答案 0 :(得分:0)
您不会显示连接字符串,但是 Server 需要AzureSQL的扩展语法, Uid 也是如此,例如:
"ODBC;Driver=SQL Server Native Client 13.0;Server=tcp:b8uroj8q5d.database.windows.net;Database=YourDatabase;Uid=username@b8uroj8q5d;Pwd=YourPassword;Encrypt=yes"
答案 1 :(得分:0)
正如我对@Gustav答案的评论中所述,解决任何人遇到类似问题的方法实际上是直接从Access Export向导创建File DSN,而不是根据问题中的链接使用“管理工具”向导。
使用Access Export向导可以选择驱动程序:SQL Server的ODBC Driver 13,而不是SQL Server的驱动程序。
(我知道这是要使用的驱动程序的原因是因为在Azure门户上的“连接字符串”>“ ODBC”下它显示了该驱动程序。)
其他一些要点:不要从azure门户复制服务器名称,而是再次使用连接字符串中的内容。 (即,您使用tcp:{yourserver} .database.windows.net,1433而不是{yourserver} .database.windows.net,用户名也是{username] @ {yourserver},而不仅仅是{username}
然后,访问向导将允许您从master更改默认数据库。