WEB开发网
开发学院数据库MSSQL Server 管理SQL Server数据库和应用元数据 阅读

管理SQL Server数据库和应用元数据

 2008-09-20 10:05:44 来源:WEB开发网   
核心提示: SELECTD.[Server],D.DatabaseNameFROMdbo.DatabasesDLEFTJOINdbo.Database_ApplicationsDAOND.DatabaseName=DA.DatabaseNameANDD.[Server]=DA.[ServerName]

   SELECTD.[Server],D.DatabaseName
  FROMdbo.DatabasesDLEFTJOINdbo.Database_ApplicationsDA
  OND.DatabaseName=DA.DatabaseNameANDD.[Server]=DA.[ServerName]
  WHEREDA.DB_AppIDISNULL
  ORDERBYD.[Server],D.DatabaseName

这个查询的结果提供任何数据库的清单,这些数据库产生于上次我更新应用元数据和服务器时,它不仅是跨域的数据库创建活动的通知,也是致力于更新两个数据库来符合应用程序信息的数据清单。这个查询也适合SQL Server Reporting Services报告的数据表,而当我不在办公室时,SQL Server Reporting Services报告也为我提供了一个新的数据库到我的黑莓(BlackBerry)的日常通知。

最后,我创建了以下存储程序,由此用任何新的数据库信息来合并dbo.Applications表和dbo.Database_Applications 表。它接受三个参数:服务器,数据库和应用程序。如果应用程序已经不存在于dbo.Applications表中,它就会被补充。然后一个记录被插入到服务器/数据库/应用程序关系中的dbo.Applications表。  

   CREATEPROCEDURE[dbo].[pAdd_Application]@ServerNamevarchar(50),@DatabaseNamevarchar(100),@ApplicationNamevarchar(100)
  AS
  --Addanynewdatabasescreated,butnotrecordedintherepository,totherepository
  UPDATEdbo.Database_Applications
  SETApplicationName=@ApplicationName
  WHEREServerName=@ServerName
  ANDDatabaseName=@DatabaseName
  ANDApplicationNameISNULL
  --Determineifthereisalreadyanapplicationforthisdatabaseintherepository,ifnot,thenaddit
  
   IF(SELECTCOUNT(*)FROMdbo.ApplicationsWHEREApplicationName=@ApplicationName)=0 
  BEGIN 
  INSERTINTOdbo.Applications(ApplicationName) 
  VALUES(@ApplicationName) 
  PRINT'AddednewApplication:'+@ApplicationName+'toApplicationstable' 
  SELECT*FROMdbo.ApplicationsWHEREApplicationName=@ApplicationName 
  END 
  --Listthenewrecordintherepository 
  SELECTServerName,DatabaseName,ApplicationName 
  FROMdbo.Database_Applications 
  WHEREServerName=@ServerName 
  ANDDatabaseName=@DatabaseName 
  ANDApplicationName=@ApplicationName

虽然我可以很容易地把这个存储程序的执行整合为SQL Server集成服务(SSIS)程序包中的最后一步,而这个程序包能够组装我的存储数据库,但我选择不这样做,这是为了在我的环境里,我能密切关注围绕新的数据库创造而展开的活动。

上一页  1 2 3 

Tags:管理 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接