我正在使用MS SQL Server 2008生成一个'〜'分隔的数据集。我的查询输出将保存为csv文件,并在SQL Server设置中设置此自定义分隔符。问题是,随机字符正在被删除。
如果我将结果运行到文本',则输出正常。但是,如果我将结果运行到文件',则随机字符将被替换为单个空格。例如,我在其中一个字段中的一个条目是“' North'”,这对文本'的结果很好。输出,但显示为' ORTH'在'结果到文件'。同样,我的一些分隔符已经丢失:例如' 1〜1〜1〜1〜1〜1'正在经历“1~1 1~1~1~1”。
我很乐意将结果复制并粘贴到文字'输出到记事本并自己保存为csv,但遗憾的是它不会让我复制多行(我的数据集很大)。
如果有人有任何想法,绝望的想法。非常感谢。
更新:我无法让我的代码在导出向导中工作,因为我在非常严格的防火墙内工作,所以无法访问SSIS。有没有人对错误发生的原因有任何想法?
答案 0 :(得分:1)
正如评论中所提到的,使用SSMS导出数据充满了问题,通常是截断长字符串和添加随机回车等问题。最好的选择是使用am SSIS任务,特别是如果你想多次运行这个工作。但是,有时使用SQL导出数据向导同样简单。右键单击数据所在的数据库,选择 Tasks ,然后选择导出数据... 并按照向导进行操作。
如果由于某种原因未使用您正在使用的SQL,则可以将其放入存储过程中。例如,假设您的查询非常简单:
SELECT Column1, Column2, Column3
FROM MyTable
你可以把它放到这样的存储过程中:
CREATE PROCEDURE GetMyData
AS
SELECT Column1, Column2, Column3
FROM MyTable
这意味着查询存储在您的数据库中,因此您不需要.sql
文件或在每次需要时将其粘贴到SSMS中。
现在您运行的查询就是这样:
EXEC GetMyData
答案 1 :(得分:0)
除了快速检查之外,我从不使用这些结果。如评论所述,最好运行导出向导。我建议更进一步,使用SSIS设计器来创建该包。将来维护和构建将更容易。
以下是一个包含其他优秀SSIS内容的网站上的视频教程: https://www.youtube.com/watch?v=VCdPzdD-boQ
这是一个很好的非视频教程: http://knowlton-group.com/using-ssis-to-export-data-to-flat-files/
一个用于管道分隔,另一个用于逗号,但在两种情况下,分隔符都可以更改为〜