读书人

SQLServer函数DB_ID跟OBJECT_ID

发布时间: 2012-07-31 12:33:47 作者: rapoo

SQLServer函数DB_ID和OBJECT_ID

DB_ID 函数 [System] 返回数据库 ID 号。 语法 DB_ID( [ database-name ] ) 参数 database-name 包含数据库名的字符串。如果不提供 database-name,则返回当前数据库的 ID 号。 返回值 INT 另请参见 global_database_id 选项 标准和兼容性 SQL/2008 服务商扩充。 示例当执行对象是服务器上唯一数据库的 SQL Anywhere 示例数据库时,该语句返回值 0。 SELECT DB_ID( 'demo' ); 执行对象是唯一处于运行状态的数据库时,以下语句返回值 0。

?

?

SQL Server 2008 SQL Server 2005

?

重要提示

使用 OBJECT_ID 不能查询非架构范围内的对象(如 DDL 触发器)。对于在 sys.objects 目录视图中找不到的对象,需要通过查询适当的目录视图来获取该对象的标识号。例如,若要返回 DDL 触发器的对象标识号,请使用 Transact-SQL 语法约定

<script type="text/javascript"></script>重要提示

在使用 Transact-SQL 函数 DB_ID 和 OBJECT_ID 返回参数值时,请始终确保返回有效的 ID。如果找不到数据库或对象的名称,例如相应名称不存在或拼写不正确,则两个函数都会返回 NULL。sys.dm_db_index_operational_stats 函数将 NULL 解释为指定所有数据库或所有对象的通配符值。由于这可能是无心之举,所以此部分中的示例说明了确定数据库 ID 和对象 ID 的安全方法。

SQL复制
DECLARE @db_id int;DECLARE @object_id int;SET @db_id = DB_ID(N'AdventureWorks2008R2');SET @object_id = OBJECT_ID(N'AdventureWorks2008R2.Person.Address');IF @db_id IS NULL   BEGIN;    PRINT N'Invalid database';  END;ELSE IF @object_id IS NULL  BEGIN;    PRINT N'Invalid object';  END;ELSE  BEGIN;    SELECT * FROM sys.dm_db_index_operational_stats(@db_id, @object_id, NULL, NULL);  END;GO

读书人网 >其他数据库

热点推荐