`
happmaoo
  • 浏览: 4342099 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多
正在作一个关于SQL SERVER数据库导入Excel文件的程序,要读取数据库中的列的信息,从网上找了很多资料,终于总结出来比较理想的sql语句,执行后返回的列分别是:表名、列名、列类型、列长度、列描述、是否主键,语句如下:
1SelectSysobjects.NameAsTb_name,Syscolumns.NameAsCol_name,Systypes.NameAsCol_type,Syscolumns.LengthAsCol_len,Isnull(Sysproperties.Value,Syscolumns.Name)AsCol_memo,
2CaseWhenSyscolumns.NameIn
3(Select主键=A.Name
4FromSyscolumnsA
5InnerJoinSysobjectsBOnA.Id=B.IdAndB.Xtype='U'AndB.Name<>'Dtproperties'
6WhereExists(Select1FromSysobjectsWhereXtype='Pk'AndNameIn(
7SelectNameFromSysindexesWhereIndidIn(
8SelectIndidFromSysindexkeysWhereId=A.IdAndColid=A.Colid
9)))
10AndB.Name=Sysobjects.Name
11)
12Then1Else0EndAsIs_key
13
14FromSysobjects,Systypes,Syscolumns
15LeftJoinSyspropertiesOn(Syscolumns.Id=Sysproperties.IdAnd
16Syscolumns.Colid=Sysproperties.Smallid)
17
18Where(Sysobjects.Xtype='U'OrSysobjects.Xtype='V')
19AndSysobjects.Id=Syscolumns.IdAndSystypes.Xtype=Syscolumns.Xtype
20AndSystypes.Name<>'Sysname'AndSysobjects.NameLike'%'OrderBySysobjects.Name,Syscolumns.Colid

结果如图:

Click to Open in New Window
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics