以下功能已被修改,以支持部分封装的数据库。 功能通常经过修改,因此它们不会跨越数据库边界。
有关详细信息,请参阅 Contained Databases。
修改数据库
应用程序级别
从包含数据库内部使用 ALTER DATABASE 语句时,语法与用于非包含数据库的语法不同。 此差异包括对语句元素的限制,这些限制超出了数据库并涉及到实例。 有关详细信息,请参阅 ALTER DATABASE (Transact-SQL)。
实例级别
在包含数据库外部使用的 ALTER DATABASE 的语法不同于用于非包含数据库的语法。 这些更改可防止跨越数据库边界。 有关详细信息,请参阅 ALTER DATABASE (Transact-SQL)。
创建数据库
包含数据库的 CREATE DATABASE 语法与非包含数据库的语法不同。 有关新的语法要求和津贴的信息,请参阅 CREATE DATABASE (SQL Server Transact-SQL)。
临时表
允许在包含数据库中使用本地临时表,但其行为与非包含数据库中的行为不同。 在非包含数据库中,临时表数据依据 tempdb 的排序规则整理。 在包含数据库中,临时表的数据按照该数据库的排序规则进行整理。
与临时表(例如表和列名、索引等)关联的所有元数据都将位于目录排序规则中。
命名约束不能用于临时表。
临时表不能引用用户定义的类型、XML 架构集合或用户定义的函数。
排序规则
在非包含数据库模型中,有三种不同的排序规则类型:数据库排序规则、实例排序规则和 tempdb 排序规则。 包含的数据库仅使用两种排序规则:数据库排序规则和新的目录排序规则。 有关包含的数据库排序规则的更多详细信息,请参阅 包含的数据库排序 规则。
用户选项
启用包含的数据库时,必须将 SQL Server 实例 的用户选项选项 设置为 0。