首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-04-15 
已知列名列表,如何查找含有这些列的表设有一字符串,里面是用逗号分隔的一些列名,列名个数不确定例如:@sc

已知列名列表,如何查找含有这些列的表
设有一字符串,里面是用逗号分隔的一些列名,列名个数不确定

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

如何在名为DB的数据库中查找一个或多个表,表必须含有@s中的列

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

[解决办法]
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+',',','+@s+',')>0             GROUP BY id HAVING COUNT(*)=@column_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,……

热点排行