这样试试
DECLARE @SQL VARCHAR(8000)
SET @SQL = 'SELECT '
SELECT @SQL = @SQL + COLUMN_NAME +',' FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '表名' AND COLUMN_NAME NOT IN('字段1','字段2')
SET @SQL = LEFT(@SQL, LEN(@SQL) - 1) + ' FROM 表名'
EXEC(@SQL)

解决方案 »

  1.   

    hhhdyj(萤火虫)
    多谢多谢!!好用好用啊,就是看不大明白,请高手不吝赐教啊!多谢多谢!
      

  2.   

    这段代码在sqlserver的查询分析器内可以运行,但是用在access数据库内不行
      

  3.   

    INFORMATION_SCHEMA.COLUMNS 是个系统表 记录了你建立的表的字段信息
      

  4.   

    我刚才查了一下sqlserver的帮助文档,基本上理解了,多谢各位高手帮忙.分数敬上!
      

  5.   

    得到表中除Col1、Col2的所有列例如:userno_fm、userno_to
    create table test(
           num int identity(1,1),
           userno_fm varchar(10),
           userno_to varchar(10),
           username varchar(10))
    select * from testdeclare @sql varchar(8000)
        select @sql=''
        select @sql=@sql+','+[name] from 
        (select [name] from syscolumns where object_id(N'[test]')=[id] and [name] not in ('userno_fm','userno_to')) A    set @sql='select '+stuff(@sql,1,1,'')+' from [test]'
        --print @sql
        exec (@sql)drop table test