当前位置: 代码迷 >> Sql Server >> SQL 导出File 时 Format取舍 Ragged right 时,得到int类型占用11个字符,bit类型占用10个,为什么?能用T_SQL得到吗
  详细解决方案

SQL 导出File 时 Format取舍 Ragged right 时,得到int类型占用11个字符,bit类型占用10个,为什么?能用T_SQL得到吗

热度:553   发布时间:2016-04-24 20:30:33.0
SQL 导出File 时 Format选择 Ragged right 时,得到int类型占用11个字符,bit类型占用10个,为什么?能用T_SQL得到吗?
数据导出csv格式时,选择Fixed with 或者 ragged right,得到的结果,打开后,可以查出原int类型的数,现在包括空格占用11个字符,bit 占用10个。这个在数据库中通过sql中的sys.systypes.prec得到 int 占10个,bit 占1个,现在想用C# 实现 Fixed with 或者 ragged right格式导出数据,得到的csv中的11 10能在数据库中用T_SQL得到吗?
sql c# Fixed?with int???占位符

------解决方案--------------------
估计是当作字符型处理了
T_SQL只怕得不到了,得到的也只是int 占10个,bit 占1个
------解决方案--------------------
Ragged right 是什么意思,相当于margin right,就是右边对齐。意思是右边没有数据时用空格填补够位。
它和char类型相似,固定长度,所就是同一字段所有内容的长度都一样。
你现在用C#导出得到的csv文件,是有办法在T_SQL中直接使用的

select *  into #temp 
from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=d:/temp;','select * from contact.csv')

select * from #temp
------解决方案--------------------
--#1.这个数据库中是没有存储的。
--#2.所有的值会导成文本。
INT的类型的范围:-2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647) ,加上负号,最大可能存储11个字符
BIT型,英文的话,最长是5(false),至于为什么是10,不明原因。可能是微软出于某种扩展目的吧
------解决方案--------------------
这个不难,你要导出为什么格式,可以考虑相应格式的要求就可以了。
  相关解决方案