t-sql的系统资料
系统资料表用来储存 SQL Server 中所有资料库的设定资讯,以及物件、使用者和使用者存取权限的定义。每个使用者资料库有各自的系统资料表,其中保存资料库的资讯。只有在 master 资料库的系统资料表才握有伺服器层级的设定资讯。您应该利用系统预存程序来存取系统资料表而不是直接存取系统资料表。关于新的 SQL Server 7.0 新增的系统资料表清单可在《线上丛书》里的「Transact-SQL新增与加强的功能」这个主题里找到。底下列出一些有趣的新系统资料表:
backupfile这个资料表存放在 msdb 资料库中。它记录了所有记录档备份或资料库档案备份的相关资讯。这些资讯包括档案识别码、档案归属的档案群组,以及档案存在的实体磁碟或资料分割的名称。
restorehistory这个资料表存放在 msdb 资料库中。它包含对应於各还原作业相关资讯的资料列,不论是档案的还原或是资料库的还原。这些资讯包括还原的日期与时间、目的资料库、资料回复的时间点以及还原的类型。
sysfiles此资料表为一虚拟资料表,亦即无法直接更新或修改。它包含了每个资料库档案的相关资讯,诸如实体装置及逻辑的档案名称、档案大小及最大档案大小以及资料库增长大小(如果资料库有所增长的话)。 SQL Server 内建的函数提供了一个快速、简单的方法来完成某些特定的工作。SQL Server 7.0 新增了几个有用的函数,并且也包含在 SQL Server 2000 中。了解哪些函数是可用的,SQL Server 应用程式的设计工作可以变得稍为简单。在《线上丛书》中的「Transact-SQL 新增与加强的功能」这个主题可以找到新增函数的完整清单。此处仅介绍一些对您可能很有帮助的函数:
NEWID 建立一个 uniqueidentifier 资料型别的 全域唯一识别项 (GUID)。您需要使用这个函数将值分派给该资料型别的资料行,使用方式为 NEWID() 。(此函数不需引数)
YEAR 传回指定日期年份部分的完整整数。使用方式为 YEAR(date) 。例如:以下陈述式 SELECT YEAR('07/11/01') 将会传回值 2007。
MONTH 传回指定日期月份部分的整数。使用方式为 MONTH(date) 。例如:以下陈述式 SELECT MONTH('07/11/01') 将会传回值11。
DAY 传回指定日期日期部分的整数。使用方式为 DAY(date) 。例如:以下陈述式 SELECT DAY('07/11/01') 将会传回值 1。
FILE_NAME 传回档案识别码(ID)的逻辑档案名称。使用方式为 FILE_NAME (file_id_number)。例如:陈述式 SELECT FILE_NAME(4) 档案识别码为4的档案逻辑名称。如果资料库中找不到有此识别码的档案,则传回 NULL。