已知列名列表,如何查找含有这些列的表
设有一字符串,里面是用逗号分隔的一些列名,列名个数不确定
例如:@s='col1,col2,col3'
如何在名为DB的数据库中查找一个或多个表,表必须含有@s中的列
最后输出结果应该是一个或多个表名
[解决办法]
1楼的Group by 写错了。
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);
[解决办法]