您认为这是使用T-SQL SQL Server 2012生成具有固定长度字段的记录的有效方法吗?
INSERT INTO #RECORD AS
SELECT
RIGHT('0000000000' + RTRIM(field01), 10)
+RIGHT(' ' + RTRIM(field02), 10)
+RIGHT('00000' + RTRIM(field03),6)
+ etc ...
+RIGHT('0000000000' + RTRIM(fieldnn, 10)
FROM sourceTable
或者我应该使用带有sourceTable
和Flat-fileAsdestination
的SSIS包以及映射和派生字段。
答案 0 :(得分:1)
如果您的数据集从性能角度来看不是很大,那么使用T-SQL,SISS包或其他方法导出数据并不重要。如果只是一次性任务,您最好使用Management Studion
来执行此操作。只需右键单击数据库,转到Tasks->Export Data...
。在向导中选择源数据库和表。然后选择平面文件作为目标。在那里你也可以选择格式。您需要的选项包括Fixed length
。在Configure Flat File Destination
步骤中,您可以Edit Mappings
设置要导出的列以及它们的长度。
如果您的数据集很大和/或您想要自动化该过程,您应该考虑使用bcp utility,它也支持固定宽度的文件格式。
不能说你的解决方案很糟糕或者不会工作但是它只是容易发生的错误,而且如果你要做的话会很难支持。
希望它有所帮助!