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