我有点问题。我的朋友有一个包含10多个表的数据库,每个表有超过90-100个记录。
我无法找到一种解决方法来导出记录(为这样的SQL文件输入每个现有记录的INSERT INTO .... VALUES ...
),从他的表中导入我的数据库。
怎么做?
我试过:右键点击表格 - > Script Table as -> INSERT TO -> File ...
但它只生成INSERT
语句。
有解决方案吗?或此功能仅适用于商业版?
更新
您可以像这样使用命令提示符使用BCP命令
出口:bcp ADatabase.dbo.OneTable out d:\test\OneTable.bcp -c -Usa -Ppassword
导入:bcp ADatabase.dbo.OneTable in d:\test\OneTable.bcp -c -Usa -Ppassword
这些命令将创建一个BCP文件,其中包含指定表的记录。您可以使用现有BCP文件导入另一个数据库
如果您使用远程数据库,那么:
bcp ADatabaseRemote.dbo.OneTableRemote out d:\test\OneTableRemote.bcp -Slocalhost/SQLExpress -Usa -Ppassword
您可以使用localhost/SQLExpress
或其他服务器名称代替localhost
答案 0 :(得分:1)
执行此操作的最简单方法可能是运行输出到文件的SELECT语句。然后,您可以将该数据导入数据库。
对于简单的动作,我也手动完成了复制/粘贴。有时最好在将Excel粘贴到新数据库之前将其用作临时平台。您可能需要在新数据库中创建一个临时表,该表与您要粘贴的数据完全匹配。例如,我通常不首先在临时表上放置PK,并使PK字段只是一个INT。这样副本就会更顺畅。
在企业界,您可以使用SSIS来移动这些数据。
答案 1 :(得分:0)
你可以通过几种方式做到这一点。一,从每个表中选择所有内容并将结果保存为csv或分隔文件(您可以从sql management studio执行此操作)。您还可以将表脚本编写为创建脚本并将脚本复制到新数据库,假设它也是一个SQL Server。然后导入使用load infile语句。您可能必须谷歌sql服务器的语法,但我知道这适用于mysql和oracle。尚未在sql server中尝试过。
LOAD DATA INFILE 'myfile'
INTO TABLE stuff
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
SET id = NULL;
或者如果你要去另一个sql server使用sql export import wizard。