将SQL Server中所有表的列信息显示出来

正在作一个关于SQL SERVER数据库导入Excel文件的程序,要读取数据库中的列的信息,从网上找了很多资料,终于总结出来比较理想的sql语句,执行后返回的列分别是:表名、列名、列类型、列长度、列描述、是否主键,语句如下:
 1 Select  Sysobjects.Name  As  Tb_name, Syscolumns.Name  As   Col_name , Systypes.Name  As  Col_type, Syscolumns.Length  As  Col_len,  Isnull (Sysproperties.Value,Syscolumns.Name)  As  Col_memo,
 2 Case   When  Syscolumns.Name  In
 3 ( Select  主键 = A.Name
 4 From  Syscolumns A
 5 Inner   Join  Sysobjects B  On  A.Id = B.Id  And  B.Xtype = ' U '   And  B.Name <> ' Dtproperties '
 6 Where   Exists ( Select   1   From  Sysobjects  Where  Xtype = ' Pk '   And  Name  In  (
 7 Select  Name  From  Sysindexes  Where  Indid  In (
 8 Select  Indid  From  Sysindexkeys  Where  Id  =  A.Id  And  Colid = A.Colid
 9 )))
10 And  B.Name = Sysobjects.Name
11 )
12 Then   1   Else   0   End   As  Is_key
13
14 From  Sysobjects,Systypes,Syscolumns
15 Left   Join  Sysproperties  On  (Syscolumns.Id  =  Sysproperties.Id  And
16 Syscolumns.Colid  =  Sysproperties.Smallid)
17
18 Where  (Sysobjects.Xtype  = ' U '   Or  Sysobjects.Xtype  = ' V ' )
19 And  Sysobjects.Id  =  Syscolumns.Id  And  Systypes.Xtype  =  Syscolumns.Xtype
20 And  Systypes.Name  <>   ' Sysname '   And  Sysobjects.Name  Like   ' % '   Order   By  Sysobjects.Name, Syscolumns.Colid

结果如图:

Click to Open in New Window
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值