这似乎是新事物,或者至少自我上次从 Minitab 16创建到 SQL Server 的 ODBC 连接以来是这样。
当我创建新的 ODBC 连接时,数据库名称现在位于下拉列表中。
如您所见,我无法读取完整的表名,并且我的几个表具有相似的名称。它并不总是包含数据库名称,是否需要取消选中某些选项或删除它?
这似乎是新事物,或者至少自我上次从 Minitab 16创建到 SQL Server 的 ODBC 连接以来是这样。
当我创建新的 ODBC 连接时,数据库名称现在位于下拉列表中。
如您所见,我无法读取完整的表名,并且我的几个表具有相似的名称。它并不总是包含数据库名称,是否需要取消选中某些选项或删除它?
这发生在升级 SQL Server - 2012 期间。
在 SQL Server 中,完全限定的表名采用以下格式:
[database].[schema].[table]
在 SQL Server Management Studio 中,您可以配置/更改所有默认值。
您可以为每个用户设置默认架构:
Security > Logins > (right click) user > Properties >
User Mapping > Default Schema
幸运的是,SQL Server 2012 允许我们为 Windows 组分配默认架构,从而解决了这个安全问题,这有助于组织简化其数据库架构管理。
以下 Transact SQL (T-SQL) 演示了为 Windows 组分配默认架构的过程:
-- Creating Default Schema "ProdAdmins" for Windows Group "MyDomain\ProdDBAs"
CREATE SCHEMA [ProdAdmins] AUTHORIZATION [MyDomain\ProdDBAs]
GO
-- Set Default Schema for Windows Group "MyDomain\ProdDBAs"
ALTER USER [MyDomain\ProdDBAs] WITH DEFAULT_SCHEMA=[ProdAdmins]
GO
以下链接可能对您有所帮助:
http://blog.mclaughlinsoftware.com/2012/09/16/setup-sql-server-schema/
我在我的系统上做了一个从头开始的实验来了解情况:
首先让我们通过执行以下操作将用户 DSN添加到我的机器 [Windows 7] 和远程 [SQL Server 2012]:控制面板 > 设置数据源 (ODBC) > 用户 DSN [Tab] > 按添加按钮
选择“SQL Server Client 11.0”并按完成您将看到如下内容:
并按照向导完成(我在向导中选择 master 作为我的默认数据库)。
怎么办?让我们看看我们是否可以在我们的客户端应用程序中使用它(在我的例子中是 Visual Studio 2013):
现在您之前添加的数据源 [Test_Plan2] 将出现在数据源规范中
测试连接并按 OK。
现在通过查询来使用这个新创建的连接
[右键单击新创建的 ODBC 连接并选择“新查询”:如果您不想选择任何表,您甚至不需要选择任何表,但如果您想选择您需要的表] > 关闭它并编写您的 SQL 查询
SELECT * FROM MSreplication_options
我根本没有那个数据库名称问题。
事实证明这是 Minitab 的一个功能,无法实际更改它。这就是程序的设计方式。