数据库对象使用概述

更新:2007 年 11 月

数据库对象定义数据库内容的结构。它们包含在数据库项目中,数据库项目还可以包含数据生成计划和脚本。在“解决方案资源管理器”中,数据库对象在文件中定义,并在数据库项目中的“架构对象”子文件夹下根据类型分组。使用数据库对象时,您可能会发现使用名为“架构视图”的数据库对象视图会更加直观。在“架构视图”中,您可以看到按类别划分的数据库对象。如果数据库项目中的文件标记为“生成”Build Type,则将分析该文件以查看它是否包含数据库对象定义。数据库项目中包含的标记为其他 Build Type 的文件不被视为包含数据库对象且不在“架构视图”中显示的文件。

解决方案资源管理器

在“解决方案资源管理器”中,可以对项目中包含的文件进行操作。在“解决方案资源管理器”中,可以对“架构对象”子文件夹中的子文件夹执行以下操作:

  • 添加 - 将指定类型的项添加到数据库项目层次结构中的相应位置。

可以对“解决方案资源管理器”的子文件夹中的所有文件执行以下操作:

  • 打开 - 在 Transact-SQL (T-SQL) 编辑器中打开文件。

  • 剪切 - 将文件复制到剪贴板并从数据库项目中移除。

  • 复制 - 将文件复制到剪贴板。

  • 删除 - 将文件从数据库项目中永久移除。

  • 重命名 - 重命名所选文件。

  • 在架构视图中查看对象 - 在“架构视图”中选择所选文件中包含的对象。如果“架构视图”尚未显示,此时将显示该视图。

  • 属性 - 显示“属性”窗口,该窗口列出了文件的属性。

您可以对某些对象类型执行其他操作,具体取决于对象的类型。

架构视图

在“架构视图”中,可以对数据库对象进行操作。在“架构视图”中,可以对“架构对象”子文件夹中的子文件夹执行以下操作:

  • 添加 - 将指定类型的对象添加到数据库项目层次结构中的相应位置。

可以对这些子文件夹中的所有数据库对象执行以下操作:

  • 打开 - 在 T-SQL 编辑器中打开此对象的定义。

  • 剪切 - 将对象复制到剪贴板并从数据库项目中移除。

  • 复制 - 将对象复制到剪贴板。

  • 删除 - 将项从数据库项目中移除。

  • 重构:重命名 - 根据数据库重构的原则重命名所选项及其依赖项。

  • 属性 - 显示“属性”窗口,该窗口列出了对象的属性。

对象名解析

通常,用来解析对象名的规则应当与 SQL Server 使用的规则相同。某些 sysobject 可能需要完全限定才能正确解析。如果在涉及到未完全限定的对象名时遇到错误或者注意到异常行为,则应当通过完全限定对象名来尝试解决该问题。

在对象定义中引用数据库名称

可以在数据库项目的对象定义脚本中使用 $(databasename) 标记,但存在以下限制:

  • 必须将该标记括在方括号中,如下面的示例所示:

    [$(databasename)]

  • 不能使用该标记来指定由三部分组成的名称,如下面的示例所示:

    [$(databasename)].[dbo].[Table1]

下面的示例演示如何在存储过程中使用 $(databasename) 标记:

CREATE PROCEDURE [dbo].[MyProcedure]
@param1 INT = 0,
@param2 INT
AS
ALTER DATABASE [$(databasename)]
MODIFY FILEGROUP [FileGroup1] DEFAULT
RETURN 0

对象级别的 SET 选项

除了可以为数据库项目设置的 SET 选项之外,还可以为各个数据库对象的两个选项指定值。这两个选项是 ANSI Null 和带引号的标识符。创建数据库对象时,默认情况下此对象的 SET 选项与数据库项目的 SET 选项匹配。可以将这两个选项设置为以下三个值之一:项目默认值、On 或 Off。生成数据库项目时,只将未设置为项目默认值的对象级别的 SET 选项编入生成脚本。

说明:

使用“导入脚本”或“导入数据库架构”命令时,不为各个数据库对象导入 SET 选项的值。必须在“属性”窗口中设置这些值。有关更多信息,请参见如何:指定对象级 SET 选项

数据库对象验证

当保存对新的或修改过的数据库对象的更改时,验证将发生。对象定义中的任何错误都会显示在“错误列表”窗口中。如果双击错误信息,会打开对象定义,这样您可以更正错误。包含错误的数据库对象在“架构视图”中它们的图标上显示一个红色的感叹号。

说明:

目前尚不支持的数据库对象在其图标上显示一个黄色的倒三角形。

有关如何解决数据库对象问题的更多信息,请参见关于数据库项目、生成和部署问题的疑难解答

架构视图中的架构对象类型

数据库项目包含数据库架构中所有对象的定义。特定对象类型列表和可以对这些对象类型所进行的操作取决于所运行的 Microsoft SQL Server 的版本。

对象类型

SQL Server 2000

SQL Server 2005

支持

支持

视图

支持

支持

同义词

 

支持

存储过程

支持

支持

函数

支持

支持

数据库触发器

 

支持

程序集

 

支持

类型:用户定义的数据类型

支持

支持

类型:用户定义的类型 (CLR)

 

支持

类型:XML 架构集合

 

支持

Service Broker

 

支持

Service Broker:消息类型

 

支持

Service Broker:协定

 

支持

Service Broker:队列

 

支持

Service Broker:服务

 

支持

Service Broker:路由

 

支持

Service Broker:事件通知

 

支持

Service Broker:远程服务绑定

 

支持

存储:全文目录

支持

支持

存储:分区方案

 

支持

存储:分区函数

 

支持

存储:文件组

支持

支持

安全性

支持

支持

安全:用户

支持

支持

安全:角色

支持

支持

安全:角色:数据库角色

支持

支持

安全:角色:应用程序角色

支持

支持

安全:架构

支持

支持

孤立对象

“架构视图”中的“孤立对象”文件夹是对象的临时位置,这些对象与其他当前不在该项目中定义的对象相关联。例如,如果在一个表上创建了一个索引,但是该表并不存在或者当前无效,则该索引将显示在“孤立对象”文件夹中。当创建了父对象(或当其成为有效的父对象)时,子对象将显示在该项目中的正确位置。

本节内容

请参见

概念

Database Edition 术语概述

其他资源

重命名数据库对象

数据库项目入门

生成和部署数据库架构

处理数据库脚本

演练(创建并更新受版本控制的数据库架构)

使用 Transact-SQL 编辑器编辑数据库脚本和对象