当前位置: 代码迷 >> Sql Server >> 已知列名列表,怎么查找含有这些列的表
  详细解决方案

已知列名列表,怎么查找含有这些列的表

热度:93   发布时间:2016-04-27 14:17:56.0
已知列名列表,如何查找含有这些列的表
设有一字符串,里面是用逗号分隔的一些列名,列名个数不确定

例如:@s='col1,col2,col3'

如何在名为DB的数据库中查找一个或多个表,[email protected]

最后输出结果应该是一个或多个表名

------解决方案--------------------
1楼的Group by 写错了。


SQL code
declare @s varchar(1000);set @s='col1,col2,col3';declare @column_count int;set @column_count = LEN(@s)-LEN(REPLACE(@s,',',''))+1;SELECT id,nameFROM sysobjects AS oWHERE EXISTS(SELECT 1 FROM syscolumns             WHERE o.id=id AND CHARINDEX(','+name+',',',[email protected]+',')>0             GROUP BY id HAVING COUNT(*)[email protected]_count);
------解决方案--------------------
探讨
1、3楼的代码我都试过了,得不到想要的结果

我是用以下字符串测试的:
set @s='XZDM,XZQHDM,TCQDM,RYBH,DWBH,RYSF,RYSF_XT,FKSSQ,FKSSQ_DY,DZRQ_GR,DZRQ_DW,ZJFS,JFLX,JFJE_GR_YJ,JFJE_GR_SJ,JFJE_DW_YJ,JFJE_DW_SJ,JFJE_DWHGR,JFJS_GR,JFBL_GR,……
  相关解决方案