shmilylq 发表于 2013-2-5 01:01:23

sql server2000 系统表常用操作

--得到数据库中所有用户表
Select from sysObjects Where xtype='U'and <>'dtproperties' Order By

--得到数据库中所有用户视图
Select From sysObjects Where xtype='V' And <>'syssegments' And <>'sysconstraints' Order By

--获得指定表中所有的列
Select
c.name As ColumnName,
t.name As TypeName
From syscolumns c, systypes t, sysobjects o
Where c.xtype = t.xusertype
And c.id = o.id
And o.name = 'Customers'
Order By c.colorder

--获得表中所有列的详细信息
SelectColOrder = col.colorder, --排序号
ColumnName = col.name, --列名
TypeName = type.name,--数据类型名称
Length =(Case When type.name='nvarchar' Or type.name='nchar' Then col.length/2 Else col.length End), --长度
= COLUMNPROPERTY(col.id, col.name, 'PRECISION'), --精度
Scale = ISNULL(COLUMNPROPERTY(col.id, col.name, 'Scale'), 0), --小数
IsIdentity = Case When COLUMNPROPERTY(col.id, col.name, 'IsIdentity')=1 Then '√' Else '' End, --是否为自动编号列
IsPK = Case When Exists(Select 1 From sysobjects Where xtype = 'PK' And name In (
   Select name From sysindexes Where indid In (
      Select indid From sysindexkeys Where id = col.id And colid = col.colid
      )
   )
    ) Then '√' Else '' End, --是否为主键
AllowNull = Case When col.isnullable=1 Then '√' Else '' End, --是否允许为空
DefalutValue = isnull(com.text, '') --默认值
From syscolumns col
Left Join systypes type On col.xtype = type.xusertype
Inner Join sysobjects obj On col.id = obj.id And (obj.xtype = 'U' Or obj.xtype = 'V') And obj.name <> 'dtproperties'
Left Join syscomments com On col.cdefault = com.id
Where obj.name = 'Territories'
页: [1]
查看完整版本: sql server2000 系统表常用操作