多年以前使用过微软的SQL Server 2000数据库。留下一个mdf格式的数据文件,临时用到想把它导出。过程真可以使用灾难来形容。现在不用使用微软的东西来工作了,真是好运啊。
我使用的是MS SQL Express 2005。要在Windows 7上安装,得安装SP4版本。安装后使用它附加上mdf文件。数据库就可以在上面查询了。在查询窗口输入:
EXEC xp_cmdshell
'BCP "dbname.dbo.tablename" out d:\aa.csv -t , -T -SMY-PC\SQLEXPRESS -w'
这样的命令,就能将数据导出CSV到文件。其中-t后面的是分隔符,这里使用的是逗号,注意这样如果原来数据中也有逗号,会产生数据分隔出问题,这时可以改用其它符号(如####)。-w是指定使用unicode文字编码输出。重点是要加-S参数,指定自己的PC名称\SQLEXPRESS, 不然会连接出错,错误提示如:
[SQL Native Client]Named Pipes Provider: Could not open a connection
to SQL Server [2].
[SQL Native Client]Login timeout expired
[SQL Native Client]An error has occurred while establishing a
connection to the server. When connecting to SQL Server 2005, this
failure may be caused by the fact that under the default settings SQL
Server does not allow remote connections.