急,关于sqlserver导出文本
我想把sqlserver的数据导出到文本中,需要根据列长度设置间隔宽度(间隔宽度=列长-数据的实际宽度),且要使用右对齐的方式,比如表中有三列:COLA char(5),COLB decimal(15,2),COLC decimal(15,2)。则在文本中要显示为:
___XY__________20.32___________0.00
___XZ___________0.32___________0.05
其中的 "_ "是为了在这里说明意思用来代替空格的。
请问用C#编写导出程序时该怎么进行控制,谢谢。
------解决方案--------------------列长在数据导出前知道吗?
还是需要通过数据库的表结构来获得?
------解决方案--------------------考虑用加入空格的方法,当符个数不等于列的预定义长度时就补空格
空格的个数=列的长度-列的字符个数
------解决方案--------------------你可以用一下SQL的BCP来导出。
msn:lzjian119@hotmail.com
------解决方案--------------------1)使用sp_columns tableName 获取一个表的列属性,其中包括了长度
2)使用SELECT Col_Length(tableName,colName)直接获取
3)查询SysColumns获取
------解决方案--------------------楼主指的 列长度是表定义的
列的长度
还是说实际的数据产生以后
占用的页面长度?
------解决方案--------------------sql帮助里面有的,你试一下xp_cmdshell这个存储过程的用法
能解决很多Sql导出文件的问题
例:
--下例将当前目录内容写入当前服务器目录下名为 dir_out.txt 的文件中。
DECLARE @cmd sysname, @var sysname
SET @var = 'dir /p '
SET @cmd = 'echo ' + @var + ' > dir_out.txt '
EXEC master..xp_cmdshell @cmd
------解决方案--------------------中间空格用制表符 "\t "表示