以扩展情况为例。应用程序在收银机上部署了 100 个 SQL Server Express 实例。它们正连接到后端的非 SQL Server Express 服务器上。只要后端服务器涉及所有对话框,就会发生这种情况。SQL Server Express 实例无法在不经过后端服务器的情况下成功进行会话。
用户实例
用户实例是 SQL Server Express 中的新功能,可以像处理文件一样处理数据库。现在,本地数据库可以随应用程序一起移动、复制或通过电子邮件传送。在新的位置,不需要进行额外配置就可以使其正常运行。用于在 SQL Server Express 中启用应用程序用户实例支持的主要功能有三个:连接字符串中的 AttachDBFilename 选项、不需要指定逻辑数据库名称和“用户实例”选项。
在用户实例支持中,暗含着几个假设。假设实例名为 SQLEXPRESS 的 SQL Server Express 已安装在计算机上。还假设它是一个仅托管堆栈解决方案,您必须使用 .NET SQL Server 数据访问接口开发可部署的 XCopy 应用程序。也就是说,不能使用 SQL Native Client 或 MDAC 来开发可用于用户实例的应用程序。
通常,应用程序开发人员仅将用户数据库和日志文件随应用程序一起复制。但是,在 SQL Server 中,一个特定数据库(称为 master 数据库)中存在多个配置条目。依赖于 master 数据库中的条目的功能包括 SQL 身份验证(建议您尽可能使用 Windows 身份验证)。如果您的应用程序依赖于 master 数据库中的任何条目,则应用程序开发人员必须确保将这些配置条目复制到目标系统中。一个方法是:当将运行的应用程序安装到目标计算机上时,要随之包括一个 SMO、DMO 或 T-SQL 配置脚本。对于大多数使用 Windows 身份验证运行的应用程序,从 master 数据库复制信息并不难。
AttachDBFileName
您可以为 AttachDBFileName 连接字符串条目指定相对文件路径或绝对文件路径。当打开连接时,将附着指定的数据库文件,此数据库用作该连接的默认数据库。如果调用 AttachDBFileName 时该数据库已附着,则附着操作不会产生任何影响。此关键字支持称为 |DataDirectory| 的特定字符串,该字符串在运行时指向存储数据库文件的应用程序的数据目录。此特定字符串应位于文件路径的起始处,仅对本地文件系统有效,并且会检查 \..\ 语法以便该文件路径不高于替换字符串指向的目录。
使用 AttachDBFileName 时,日志文件的用法有些变化。日志文件名的格式必须为:<database-File-Name>_log.ldf,并且在使用 AttachDBFileName 时,没有用于指定日志文件名的选项。例如,如果数据库文件名为 myDb.mdf 且位于 c:\myApp,则日志文件名应为 myDb_log.ldf。如果 SQL 在数据库文件所在的目录中找不到此文件,则在附着过程中将创建一个新的日志文件。这意味着,在使用 AttachDBFileName 时,不支持用户定义的日志文件名。
SQL Server 支持对一个数据库使用多个数据和日志文件,这些文件可以分布在多个文件组中。AttachDBFileName 语法不支持此功能,也不支持网路共享、HTTP 路径或通用命名约定 (UNC) 远程数据库。
逻辑数据库名称
如果在连接字符串中未指定逻辑数据库名称,则将为要附着的数据库自动生成一个名称。该名称是基于 .mdf 文件的相对文件路径生成的。例如,如果文件位于 c:\myDocuments\Myapp\myDB.mdf,则逻辑数据库名称将基于完整路径。如果文件路径的字符多于 128 个,则此功能将使用现有路径和一个哈希来生成逻辑数据库名称。这是 SQL Server Express 中的新功能,因为在 SQL Server 2000 中不指定数据库名称将导致出现错误。支持的语法包括 database=; 或 initial catalog=;,或者用户也可以在连接字符串中完全省略它们。
在同一台计算机上移动或复制数据库时,此功能非常有用,因为基于文件路径的逻辑名称是唯一的。如果没有此功能,则在使用同一个逻辑名称打开两个不同目录中的数据库时,SQL Server 中将会发生命名冲突。计算机之间还支持应用程序 XCopy。
文章来源于领测软件测试网 https://www.ltesting.net/