架构
SQL Serve 2005中的系统架构
SQL Server 2000中查询系统元数据的时候我们要通过很多系统表,例如sysobjects什么的,当然SQL Server中有很多系统存储过程,但是还是不能完全满足我们管理员的需求,所以只能查这些系统表,在SQL Server 2005中所有的系统表都被整合到了一个叫做sys的架构下,同时还有就是架构。
以下给一段范例代码,可以帮助大家在SQL Server 2005中查询出有哪些表引用了某张表,
--------------------------------------------------------------------------------
USE AdventureWorks
GO
--显示有哪些表引用了该对象
IF OBJECT_ID('dbo.ufn_ListReferencingTables') <> 0
DROP FUNCTION dbo.ufn_ListReferencingTables
GO
CREATE FUNCTION dbo.ufn_ListReferencingTables
(referenced_table AS varchar(200))
RETURNS TABLE AS
RETURN(
SELECT SCHEMA_NAME(CONVERT(int, OBJECTPROPERTYEX(fkeyid, 'SchemaId')))
+ '.' + OBJECT_NAME(fkeyid)
AS [Referencing Table]
FROM sys.sysreferences
WHERE rkeyid = OBJECT_ID(referenced_table)
)
GO