今天从数据库SqlServer2005 导出数据生成excel的时候碰到的问题:
提示说这个表列太多了,所以导出发生了错误。
后来上网搜了一下用这个语句 select name from syscolumns where id = object_id('table');得出表中有330多列。
我现在的问题是想先取到其中一半列的数据进行excel导出,在取另一半数据导出。
例如这样:
表:table
id name sex age
1 2 3 4
2 2 3 4
3 2 3 4
我想只取到这样的数据:
id name
1 2
2 2
3 2
本人是个数据库菜鸟,请大侠们赐教= =、万分感谢!
------解决方案--------------------
declare @columns varchar(50),@sql varchar(max)
set @columns=''
select @columns=@columns + ',' + a.name
from sys.columns a
join sys.tables b
on a.object_id=b.object_id
where b.name='TableName'
and a.column_id<100 --此处分列
set @columns=STUFF(@columns, 1, 1, '')
set @sql='select '+@columns+' from TableName'
select @sql
exec(@sql)
------解决方案--------------------
我在sql2005里面执行了这段代码没问题啊。。。