快速查找字段名称所在的用户表

有时,我们需要增加某个字段的长度,但该字段出现在多个表中,如何快速且一个不漏的找出哪些用户表用到该字段呢?有如下几种方式都可以实现:

1.

select tab.name table_name, col.name column_name,length 
from sysobjects tab
left join syscolumns col on tab.id = col.id and tab.xtype = 'U'
where col.name like '%字段名称%'
order by 1,2

2.

select * from sys.objects where object_id in(select [OBJECT_ID] from sys.all_columns where name='字段名称') 

3.

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='字段名称' AND RIGHT(D.NAME,3)<>'Log'
ORDER BY A.ID,A.COLORDER  

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值