SQL SERVER查询字段在哪个表里

DECLARE @ColumnName  AS VARCHAR(100);
SET  @ColumnName='字段名的模糊匹配';

SELECT     
表名=D.NAME,  
表说明 = CASE   WHEN   A.COLORDER=1   THEN   ISNULL(F.VALUE, ' ')   ELSE   ' '   END,   
字段序号 = A.COLORDER,   
字段名 =   A.NAME,   
标识  =   CASE   WHEN   COLUMNPROPERTY(   A.ID,A.NAME, 'ISIDENTITY ')=1   THEN   ''ELSE   ' '   END,   
主鍵 =   CASE   WHEN   EXISTS(SELECT   1   FROM   SYSOBJECTS   WHERE   XTYPE= 'PK '   AND   PARENT_OBJ=A.ID   AND   NAME   IN   (   
SELECT   NAME   FROM   SYSINDEXES   WHERE   INDID   IN(   
SELECT   INDID   FROM   SYSINDEXKEYS   WHERE   ID   =   A.ID   AND   COLID=A.COLID)))   THEN   ''   ELSE   ' '   END,   
类型 =   B.NAME,   
占用字节数   =   A.LENGTH,   
长度 =  COLUMNPROPERTY(A.ID,A.NAME, 'PRECISION '),   
小数位数 =   ISNULL(COLUMNPROPERTY(A.ID,A.NAME, 'SCALE '),0),   
允许空 =   CASE   WHEN   A.ISNULLABLE=1   THEN   ''ELSE   ' '   END,   
默认值  =   ISNULL(E.TEXT, ' '),   
字段说明  =   ISNULL(G.[VALUE], ' ')   
FROM   SYSCOLUMNS   A LEFT   JOIN   SYSTYPES   B   ON   A.XUSERTYPE=B.XUSERTYPE   
INNER   JOIN   SYSOBJECTS   D   ON   A.ID=D.ID     AND   D.XTYPE= 'U '   AND     D.NAME <> 'DTPROPERTIES '   
LEFT   JOIN   SYSCOMMENTS   E   ON   A.CDEFAULT=E.ID   
LEFT   JOIN   sys.extended_properties   G   ON   A.ID=G.major_id   AND   A.COLID=G.minor_id       
LEFT   JOIN   sys.extended_properties   F   ON   D.ID=F.major_id   AND   F.minor_id=0   
WHERE a.name like  @ColumnName AND RIGHT(D.NAME,3)<>'Log'  
ORDER BY A.ID,A.COLORDER    

 

转载于:https://www.cnblogs.com/JinweiChang/p/10592817.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值