SQL Server的以前版本在跟踪对象相关性方面做的并不好。原因是所有的对象相关性都是由对象ID来跟踪的,这意味着对象一开始就必须存在。但是,通过根据对象名称来跟踪对象SQL Server 2008极大地扩展了跟踪对象的能力,而不用再依赖ID。该方法的好处是在一些对象已经从数据库中转移出去后,还可以继续跟踪对象,甚至在对象没有建立时也可以进行跟踪。
新管理对象
SQL Server 2008引进了两个新动态管理函数和新系统视图,用于跟踪对象相关性。这两个新对象包括Database Engine存储的有关相关性的信息,这些相关性是在创建、更改和放弃对象时建立的。在一个对象以名称的形式出现于存储在另一个对象中的SQL表达式中时,一个相关性就会在两个对象之间创建。在表达式中出现的对象称为被引用实体,而包含SQL表达式的对象称为引用实体。
sys.sql_expression_dependencies
本视图含有当前数据库中用户定义的一个对象的每个相关性的一个记录。这些用户定义的对象可以是存储在当前数据库中的对象,或者存储在不同数据库中并利用部分命名规则(databasename.schemaname.objectname)被引用的对象,在不同的服务器上并使用四部分命名规则(servername.databasename.schemaname.objectname)通过链接服务器被引用的对象,以及在特定对象创建时不存在的对象(称为延迟对象)。
sys.dm_sql_referenced_entities
用户在定义特定引用实体时,本函数为通过名称引用的每个用户定义的对象返回一个行,例如,如果视图vw_SampleView引用表Table1 的Field1、 Field2和 Field3,则将返回四行,针对被引用字段返回三行,针对表引用返回一行。
sys.dm_sql_referencing_entities
该函数为用户在当前数据库中定义的每个对象返回一个记录,这些对象通过名称引用另一个用户定义的对象。例如,如果视图vw_SampleView引用Table1 和 Table2,则该函数返回两个记录,针对每个表引用返回一个记录。
举例
以下示例显示了如何通过创建一些对象和查询新DMV在数据库内部跟踪相关性。利用下边的脚本创建名称为SalesHistory的表:
以下为引用的内容:
CREATE TABLE [dbo].[SalesHistory](
[SaleID] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
[Product] [char](150) NULL,
[SaleDate] [datetime] NULL,
[SalePrice] [money] NULL
)
在下边的脚本中,创建了名称为dbo.usp_GetSales的存储的过程,该过程引用在以上脚本中创建的SalesHistory表:
以下为引用的内容:
CREATE PROCEDURE dbo.usp_GetSales
(
@Product VARCHAR(10)
)
AS
BEGIN
SELECT COUNT(SaleID) AS SalesCount, SUM(SalePrice) AS SalesAmount
FROM dbo.SalesHistory sh
END
未完,原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9155
分享到:
- 2008-12-16 14:35
- 浏览 690
- 评论(0)
- 论坛回复 / 浏览 (0 / 1018)
- 查看更多
相关推荐
SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...
SQL Server和Transact-SQL是两个紧密关联但不同的概念,它们在数据库管理和开发领域中扮演着重要角色。这里我们将深入探讨这两个主题,并结合PDF文件的相关性,为您提供丰富的知识。 SQL Server是由微软公司开发的...
自动使得对象名称合格 三:代码重构 无需打断相关性即可对对象重命名 将SQL代码封装成一个存储好的程序 扩展通配符 拆分表格 四:浏览数据库 查找无效的数据库对象 从查询语句中直接将对象改编为ALTER 找到未使用的...
针对题目中的"C#中断Sqlserver服务的程序",我们将深入探讨如何使用C#编程语言来实现对SQL Server服务的操控,以及相关的技术要点。 C#是微软推出的一种面向对象的编程语言,它具有丰富的类库和强大的功能,可以...
描述中提到文档内容经过验证无误,标签指明主题相关性为SQL Server。而部分内容则详细介绍了Java程序连接SQL Server 2008数据库的四种不同方法。 首先,需要明确“Server连接的四种方法”指的是Java语言通过不同的...
在研究SQL Server数据库日志监测方法的过程中,还特别强调了技术分析的相关性,其中Java和JDBC作为实现数据库日志监测的技术工具,需要深入了解其工作机制和编程方法。通过Java编程语言的跨平台特性和JDBC的应用,...
3. **使用创建数据源向导**:通过以上步骤,我们可以创建一个新的系统数据源名称(DSN),并在分析服务中使用它作为数据源。 #### 三、维度的设置与使用 **维度**是多维数据集中重要的组成部分,它们是用来描述事实...
SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码...
在SQL Server 2000中,可以创建用户定义的数据类型,以便更好地管理和使用数据。 - **创建数据类型**: - 使用`CREATE TYPE`命令。 - **使用数据类型**: - 在创建表时指定列的数据类型为用户定义的数据类型。 *...
SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码...
使用SQL Prompt可以极大的提高用户的生产率,并明显的减少花在键盘上的时间。 功能特征: 顺利的编写SQL代码 根据部分代码比对进行代码补全 自定义代码片段 智能JOIN条件提示 即时访问模式信息 使得代码更具...
SQL Prompt[1] 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的...
使用SQL Prompt可以极大的提高用户的生产率,并明显的减少花在键盘上的时间。 功能特征: 顺利的编写SQL代码 根据部分代码比对进行代码补全 自定义代码片段 智能JOIN条件提示 即时访问模式信息 使得代码更具...
SQL Prompt是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码...
值得注意的是,文档中提到的关于Hyper-V 2008 R2服务器集群的问题与SQL Azure直接相关性较小,但为了完整性,这里提供解答:在不使用Virtual Desktop Infrastructure (VDI)的情况下,每个故障转移集群节点支持32个...
在SQL Server 2008中,聚类算法通过计算个体间的距离来判断相似度,距离相近的对象会被归为同一类别。这个过程会不断迭代,直到无法通过重新定义类别来改善模型。聚类分析在商业智能中常用于客户细分,帮助识别不同...
Set objSQLServer = CreateObject("SQLDMO.SQLServer") ' 连接数据库 objSQLServer.LoginSecure = True objSQLServer.Connect strDBServerName ' 获取数据库对象 Set objDB = objSQLServer.Databases(strDBName) ...
- **JDK**: Java开发工具包,本例中使用的版本是J2SDK 1.4.2-10。 - **SQL Server 2000**: 微软的SQL Server数据库版本。 - **ODBC数据源**: ODBC(Open Database Connectivity)是微软提供的一种数据库访问方式,可...
在SQL Server中,要获取第31到第40条记录,可以使用两种方法。第一种是利用NOT IN子句排除前30条记录,然后取前10条;第二种方法是找到ID大于前30条记录中最大ID的记录,再取前10条。这两种方法都适用于ID不连续的...
自那时起,DB2经历了多个版本的迭代,从早期的System/38、SQL/DSforVSE和VM,到1983年的DB2 for MVSV1,致力于提供数据不相关性和用户生产率。随着技术的发展,DB2逐渐增加了对OLTP的支持和分布式数据库功能,并在...