我一直在SQL Server 2005试图获取大量数据.我已经获得了一个包含近300个表的数据库,我需要将其转换为MySQL数据库.我的第一个调用是使用bcp,但不幸的是它没有生成有效的CSV - 字符串没有封装,所以你不能处理任何带有逗号的字符串(或者你用作分隔符的任何行)我仍然需要手工编写所有的create table语句,因为很明显CSV并没有告诉你有关数据类型的任何信息.
更好的是,如果有一些工具可以连接到SQL Server和MySQL,然后进行复制.您丢失了视图,存储过程,触发器等,但是复制仅使用基本类型从一个数据库到另一个数据库的表并不困难......是吗?
有人知道这样的工具吗?我不介意它做了多少假设或简化发生,只要它支持整数,浮点数,日期时间和字符串.我不得不做很多修剪,正常化等等,所以我不关心保持键,关系或类似的东西,但我需要快速的初始数据集!
我想将一些SQL Server 2005数据导出为CSV格式(用逗号分隔引号).我可以想到很多复杂的方法,但我想以正确的方式做到这一点.我看过bcp,但我无法弄清楚如何在字段周围添加引号(除了将它们连接到字段值,这很难看).我想我可以用sqlcmd和-o做到这一点,但出于同样的原因,这似乎很难看.
有没有bcp方式来做到这一点?
有合理的sqlcmd方法吗?
管理工作室内置了一些非常简单的实用工具吗?
我已经看到一些hacks试图让bcp实用程序导出列名和数据.如果我所做的只是将表转储到文本文件中,那么使用bcp添加列标题的最简单的方法是什么?
这是我目前使用的bcp命令:
bcp myschema.dbo.myTableout myTable.csv /SmyServer01 /c /t, -T
Run Code Online (Sandbox Code Playgroud) 以下是BCP声明的示例.我不习惯使用BCP,所以非常感谢您的帮助和坦率
我也在使用格式文件.
如果我从CMD提示执行它工作正常但从SQL我得到错误.BCP语句全部在一行,SQL Server代理作为本地系统运行.SQL服务器和脚本位于同一系统上.
我运行了exec master..xp_fixeddrives C,45589 E,423686
我已尝试输出到C和E,结果相同
EXEC xp_cmdshell 'bcp "Select FILENAME, POLICYNUMBER, INSURED_DRAWER_100, POLICY_INFORMATION, DOCUMENTTYPE, DOCUMENTDATE, POLICYYEAR FROM data.dbo.max" queryout "E:\Storage\Export\Data\max.idx" -fmax-c.fmt -SSERVERNAME -T
Run Code Online (Sandbox Code Playgroud)
这是格式文件rmax-c.fmt
10.0
7
1 SQLCHAR 0 255 "$#Y#$" 1 FILENAME
2 SQLCHAR 0 40 "" 2 POLICYNUMBER
3 SQLCHAR 0 40 "" 3 INSURED_DRAWER_100
4 SQLCHAR 0 40 "" 4 POLICY_INFORMATION
5 SQLCHAR 0 40 "" 5 DOCUMENTTYPE
6 SQLCHAR 0 40 "" 6 DOCUMENTDATE
7 SQLCHAR 0 8 "\r\n" 7 POLICYYEAR
Run Code Online (Sandbox Code Playgroud)
由于在此帖子中格式化,格式文件的最后一列被截断,但读取 …
我有一个ASP.NET应用程序,需要多兆字节文件上传,将它们写入磁盘,后来MSSQL 2008用BCP加载它们.
我想将整个事情移至Azure,但由于BCP没有"文件",任何人都可以评论如何将Azure应用程序中的批量数据导入SQL Azure吗?
我确实看到了http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx,但我不确定是否适用.
谢谢.
我正在努力让这个bcp工具以特定的方式工作.-c开关应该使用chars导出,但由于某种原因,在Notepad ++中显示了一个奇怪的char,如果它是UNICODE或其他格式.
我想获取该数据库中的空字符串char,将其作为空字符串导出到文本文件中.你是怎样做的?
使用bcp时,如何使用长查询指定输入sql文件?我尝试使用该-i选项,但它一直抱怨命令行错误,没有额外的信息.这可能吗?
我最近在使用bcp时遇到错误.这是错误.
SQLState = 22001,NativeError = 0错误= [Microsoft] [SQL Server Native Client 10.0]字符串数据,右截断
我正在尝试将数据解压缩到没有任何约束的临时表中,并且与数据相比,数据类型也相当大.我有来自不同表的大约11个文件被bcp'd和压缩出来,当解包错误时只有一个文件.这是我一直在成功使用的命令.最近(当试图制作当前WH的副本并设置过程时)我一直面临着问题.
employee_details.dat中的bcp.exe employee_details -n -E -S"servername"-U sa -P"密码"
我已经尝试将命令更改为-C -T -S,当我手动给出格式时,它可以工作.这是一个非常重要的数据包,我需要加载到我的WH.
我不知道我是否在这里看到格式文件.需要任何帮助.
谢谢
肉桂的女孩.
我试图执行以下代码来导出数据(myFileName.csv):
bcp "select * from DataBase.schema.TABLE_NAME" queryout tableData.csv -c -t, , -S [server] -U [user] -P '[password(with special characters)]' > LogFile.txt
Run Code Online (Sandbox Code Playgroud)
上面的代码在终端上工作正常.
相比之下,我使用java尝试了相同的代码.
File dir = new File("Mydirectory");
Path dataPath = Paths.get("tableData.csv");
List<String> val = new ArrayList();
val.add("bcp");
val.add("\"select * from " + [Database] + ".[Schema]." + table_name + "\"");
val.add("queryout");
val.add(dataPath.toString());
val.add("-c");
val.add("-t");
val.add(",");
val.add("-S");
val.add([server]);// ex: if Server is 10.0.0.1 then val.add("10.0.0.1");
val.add("-U");
val.add([user]); // ex: if User_name is TestA then val.add("TestA");
val.add("-P");
val.add([password(with …Run Code Online (Sandbox Code Playgroud) 我正在使用FMT格式文件对表进行BULK INSERT,但是我收到以下错误:
XML parsing: line 2, character 0, incorrect document syntax
Run Code Online (Sandbox Code Playgroud)
这是我的代码
BULK INSERT [DM_Flux].[dbo].[Stage] FROM 'C:\temp\data.dat'
WITH (FORMATFILE = 'C:\temp\FormatBcp.fmt')
Run Code Online (Sandbox Code Playgroud)
这是formatfile(标准格式文件,而不是XML):
10.0
5
1 SQLCHAR 0 2 "" 1 Id ""
2 SQLCHAR 0 40 "" 2 Name ""
3 SQLCHAR 0 50 "" 3 Street ""
4 SQLCHAR 0 8 "" 4 StreetNo ""
5 SQLCHAR 0 300 "\r\n" 7 BulkData ""
Run Code Online (Sandbox Code Playgroud)
为什么我会遇到XML错误?