假设数据库中有表test,表testc,表teste;
现有一个字符串'test,testa,testb,testc,testd',每个表名之间都有一个逗号隔开,现在想查询这个字符串中哪些是数据库存在的表格,希望查询输出字符串'test,testc'.
数据库查询

解决方案 »

  1.   

    declare @s varchar(1000)
    set @s='test,testa,testb,testc,testd'
    select name as 表名
    from sysobjects
    where CHARINDEX(','+name+',',','+@s+',')>0 
      

  2.   

    应该再加条件:xtype='U'
    xtype='U'表示类型为表declare @s varchar(1000)
    set @s='test,testa,testb,testc,testd'
    select name as 表名
    from sysobjects
    where CHARINDEX(','+name+',',','+@s+',')>0 and xtype='U'
      

  3.   

    先拆分字符串 然后再用
    SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('TEST')
    查询出所有列名来匹配