SQL2000,库名:DBNM
有多张结构完全一致的表:前缀均为TBNM,后缀四位字符不固定
本数据库内没有其它表名前缀也是TBNM但结构不一样的,可以理解为操作对象是TBNM****现欲列出所有TBNM****表中字符串字段FDNM值等于123456的记录

解决方案 »

  1.   

    本帖最后由 josy 于 2011-05-27 01:50:31 编辑
      

  2.   

    得到表名很容易
    select name from sysobjects where xtype= 'U' and left(name,4)='TBNM' order by name
    问题是后面搞不懂了
      

  3.   

    declare @sql varchar(8000)
    select 
      @sql=isnull(@sql+'union all select * from ','select * from ')+'['+name+']'  
    from sysobjects 
    where xtype= 'U' and  left(name,4)='TBNM' 
    set @sql='select * from ('+@sql+') t where FDNM=123456'exec (@sql)
    动态字符串拼接 
      

  4.   

    declare @sql varchar(8000)
    select 
      @sql=isnull(@sql+'     union all     select * from    ','    select * from    ')+name from sysobjects where xtype= 'U' and name like 'TBNM%'
    set @sql='select * from ('+@sql+') t where FDNM=123456'exec (@sql)同二楼,只是 union all  前后需加空格!