Sql server 为什么要从我的SQL Server导出中删除随机字符?

Sql server 为什么要从我的SQL Server导出中删除随机字符?,sql-server,csv,export,Sql Server,Csv,Export,我正在使用MS SQL Server 2008生成以“~”分隔的数据集。我的查询输出将保存为csv文件,并在SQL Server设置中设置了此自定义分隔符。问题是,随机字符正在被删除 如果我运行“结果到文本”,输出是好的。但是,如果我运行“结果到文件”,随机字符将被替换为单个空格。例如,我的一个字段中的一个条目显示为“North”,这在“结果到文本”输出中可以,但在“结果到文件”中显示为“orth”。类似地,我的一些分隔符也丢失了:例如,“1~1~1~1~1~1”被改为“1~11~1~1~1”

我正在使用MS SQL Server 2008生成以“~”分隔的数据集。我的查询输出将保存为csv文件,并在SQL Server设置中设置了此自定义分隔符。问题是,随机字符正在被删除

如果我运行“结果到文本”,输出是好的。但是,如果我运行“结果到文件”,随机字符将被替换为单个空格。例如,我的一个字段中的一个条目显示为“North”,这在“结果到文本”输出中可以,但在“结果到文件”中显示为“orth”。类似地,我的一些分隔符也丢失了:例如,“1~1~1~1~1~1”被改为“1~11~1~1~1”

我很乐意将“结果到文本”输出复制粘贴到记事本中,并将其另存为csv,但不幸的是,它不允许我复制超过几行(我的数据集很大)

如果有人有想法的话,我会不顾一切的。非常感谢


更新:我无法让我的代码在导出向导中工作,并且我没有访问SSIS的权限,因为我在一个非常严格的防火墙内工作。有人知道为什么会发生错误吗?

除了快速检查之外,我从不使用这些结果。如前所述,最好运行导出向导。我建议进一步使用SSIS设计器来创建该包。在未来,它将更易于维护和建立

下面是一个关于站点的优秀视频教程,其中包含其他优秀的SSIS内容:

以下是一个很好的非视频教程:


一个用于管道分隔符,另一个用于逗号,但在这两种情况下,分隔符都可以更改为~

,如注释中所述,使用SSM导出数据充满了问题,通常是截断长字符串和添加随机回车符。最好的选择是使用am SSIS任务,特别是如果您希望多次运行此作业。但是,有时使用SQL导出数据向导也很简单。右键单击数据所在的数据库,选择任务,然后导出数据。。。并按照向导进行操作

如果由于某种原因,您正在使用的SQL不被接受,那么您可以将其放入存储过程中。例如,假设您的查询非常简单:

SELECT Column1, Column2, Column3
FROM MyTable
您可以将其放入如下存储过程:

CREATE PROCEDURE GetMyData
AS    

SELECT Column1, Column2, Column3
FROM MyTable
这意味着查询存储在数据库中,因此不需要
.sql
文件,也不需要在每次需要时将其粘贴到SSMS中

现在,您运行的查询如下所示:

EXEC GetMyData

您不应该使用SSM像那样导出数据。而是创建一个实际的导出(右键单击数据库、任务、导出数据)@DavidG我不知道怎么做?我正在运行一个查询,我在哪里单击鼠标右键?你看到我的评论了吗?!是的,我读了你的评论。我在任何地方都看不到“数据库”,因此我问。如果我能看到在哪里单击鼠标右键,我就不会问“我在哪里单击鼠标右键?”Database=存储数据的数据库,运行查询的数据库。谢谢。很遗憾,我无法访问正在使用的服务器上的SSI。最好使用内部SQL Server选项解决此问题。您可以在工作站上从VS外壳运行ssis包。只需要安装最新的SSDT。您正在查看的导出向导实际上创建了一个SSIS包,并且不使用内部SQL Server选项。这些将是openrowset和bulk copy,您可以研究使用它们,但在我看来SSIS designer更易于使用。@JimMichael不要忘记向上投票(当您有足够的代表时),并接受为您提供有效解决方案的答案。当然-向上投票(正如您已经注意到的,我没有足够的代表,所以它只是作为反馈存储)