SQL Serve 2005中的系統架構

iSQlServer發表於2010-03-21

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-630026/,如需轉載,請註明出處,否則將追究法律責任。

相關文章