SQL Server系统表的应用

系统表用的不多,写几个常用的系统表
各个数据库中的系统表:
1.SysObject:
  存放数据库中的各个对象!
  最重字段
   1.1 Name,Id,Crdate,Xtype (U :用户表,V:视图,Tr:触发器,P:存储过程,S,系统表)

   1.2 常用函数 Object_ID('对象名'),Object_Name 
   此外我们如果想生成1,2,3,4,5这样的等差数列,可以这样做
   Select Identity(int,1,1) As Id Into # From SysObjects,SysColumns  
2.SysColumns
  存放各列的信息
  最重字段
   2.1 Name,Id,Colid--字段在表中存放的顺序
   设一个表中字段有很多,想列出某表除某字段外的所有字段,可以这样写
   Declare @Fields Varchar(5000)
   Select @Fields=@Fields+Name
   From SysColumns
   Where Id=Object_ID('Test') and Name Not In ('字段1','字段2')
   又如如何用列序号选择特定列
   Create Function F_ColumnOrder(@TableName Varchar(10),@Colid Int)
   Returns Table
   As
   Return
   Select Name From SysColumns
   Where ID=Object_ID(@TableName) And Colid=@Colid
--Try
Select * From Dbo.F_ColumnOrder('Users',2)
  
3.SysFiles
  如果我们想知道SQL的数据文件存放目录的话,可以用
  Select FileName From SysFiles
4.SysComments
  保存视图或存储过程的语句!
5.Sysforeignkeys
  fkeyid:外键表对象ID,rKeyid:主键表对象ID
有时我们想把数据库中的所有表都去掉,但是有约束的存在,有些表必须在主表前删除,否则就会报错,

这种情况下我们就通过该表来实现
**********************************************************
Master表中的系统表
SysDataBases
  重要字段
    1.1 Name,Dbid,Crdate
      常用函数 DB_ID('数据库名')
sysaltfiles
    保存各个数据库的MDF文件的物理地址
SysProcesses
    保存进程信息
    Kill  spid 杀掉某进程

5.注意sp_MsForEachTable函数
  删除某数据库中表
   Exec Sp_MsForEachTable 'Truncate Table ?'
   注意:有约束的不能删除,会出错的
6.如果想改系统表怎么办?
  2种方法
    1.通过查询分析器改
    用如下语句:
     Exec Sp_Configure 'allow updates',1--允计修改
     Reconfigure with override
    
     Exec Sp_Configure 'allow updates',0--不允计修改
     Reconfigure with override    
    2.通过企业管理器改
     在SQL实例上右键-属性-允计修改系统目录直接进行修改

来源:http://www.blogjava.net/redalart/archive/2007/03/21/105171.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值