Mat*_*agé 5 sql-server ms-access upsizing
我正在将我的应用程序从MS-Access FE和BE升级到MS-Access FE和SQL Server BE.我使用SSMA Access"升迁"工具将所有表从Access转换为SQL,然后使用ODBC链接Access FE中的SQL表.
在我的访问数据库中,某些表具有在SQL Server的datetime(0)列中转换的DateTime列.在Access中链接这些表之后,Access将这些列视为文本列,即使它们是SQL Server BE中的datetime2(0)列.
这会导致一些问题,因为使用日期格式的查询不能使用文本格式.是否有链接表,以便日期时间(0)字段被Access视为日期时间值?
小智 8
类似问题:已解决
我有一个 SQL 服务器,其字段为 DATETIME2 数据类型,并通过 ODBC 作为链接表在 Win7 上的 MS Access 中连接到它。
当使用相同的数据库从两个不同的工作站进行连接时,一个具有正确的“日期/时间”数据类型,另一个具有“短文本”的数据类型
解决方案:事实证明,链接表是使用两个不同的 DSN 文件建立的,一个列出了“DRIVER=SQL Server”,另一个列出了“DRIVER=SQL Server Native Client 11.0”。为了通过 ODBC 链接获得“日期/时间”数据类型,我需要使用客户端 11.0。
要查看您安装了哪些驱动程序:
From the start menu search for "ODBC"
Select "Data Sources (ODBC)".
Click on the "Drivers" tab
Run Code Online (Sandbox Code Playgroud)
您将看到已安装的驱动程序。我有三个。
SQL Server 6.01.7601.17514
SQL Server Native Client 10.0 2007.100.5500.00
SQL Server Native Client 11.0 2011.110.6020.00
Run Code Online (Sandbox Code Playgroud)
我相信 SQL Server 版本 6 由 Win7 安装并通过 Windows Update 更新。如果这就是您所拥有的,您将只能通过链接表从 DATETIME2 SQL 数据类型中获取 TEXT。
本机客户端分别由 SQL Server Management Studio 2008 和 2012 安装。
您可以从https://www.microsoft.com/en-us/download/details.aspx?id=36434下载并安装 SQL Server Native Client 11.0