T-SQL 不提供這個功能!
變通的辦法有:
- 取得該表的建表語句,然后刪除不需要的字段;
- 把除這個表中的其他需要的字段一個一個寫出來;
- 把這個字段刪除:alter table 表名 drop column 字段名;
- 如果是MySql,create table a like b會創建索引;
- 新建一個同樣的表b,然后刪除不要的字段:
create table b as select * from a; alter table b drop column c; select * from b;
- 利用concat函數拼出除了某字段之外的所有字段:
select concat('select',group_concat(column_name),'from',table_name,';') from information_schema.columns where table_name='xxxx' and table_schema='ccms_xxx' and column_name!='id'
- 動態拼接sql,把不想查的列去掉后動態執行sql:
declare @name varchar(100) declare @sql varchar(1000) SET @sql='select ' DECLARE C11 CURSOR FOR select name from syscolumns where id= (select max(id) from sysobjects where xtype='u' and name='表名') and name <> '不要的字段' OPEN C11 FETCH NEXT FROM C11 INTO @name IF @@FETCH_STATUS <> 0 BEGIN DEALLOCATE C11 RETURN END WHILE(@@FETCH_STATUS = 0) BEGIN SET @sql=@sql+@name+',' FETCH NEXT FROM C11 INTO @name END DEALLOCATE C11 set @sql=substring(@sql,1,len(@sql)-1)+' from 表名' exec (@sql)