我有一个带有表客户的数据库,其中包含一些数据
我在办公室有另一个数据库,一切都相同,但我的客户表是空
的 如何在 SQL Server 2005 (T-SQL) 中创建一个包含所有数据的 sql 文件在第一个数据库的客户表上,创建一个,比如说,buildcustomers.sql,我压缩该文件,通过网络复制它,在我的 SQL Server 中执行它,瞧!我的表客户已满
我怎样才能对整个数据库做同样的事情?
7 回答
此功能已内置到 Sql Server Management Studio 2008 中。
只需下载试用版并仅安装客户端工具(不应过期)。使用 Management Studio 2008 连接到您的 2005 数据库(向后兼容)。
- 右键单击您的数据库
- 选择任务>生成脚本
- 按下一步,再次选择您的数据库
- 在“选择脚本选项”屏幕上,有一个名为Script Data的选项,它将为您的所有数据生成 SQL 插入语句。
(注意:对于 SQL Server Management Studio 2008 R2,该选项名为“Types of data to script”,是 General 部分的最后一个选项。选项为“data only”、“schema and data”和“schema only ")
使用bcp
(从命令行)网络文件,然后恢复它。
例如
bcp "SELECT * FROM CustomerTable" queryout "c:\temp\CustomerTable.bcp"
-N -S SOURCESERVERNAME -T
bcp TargetDatabaseTable in "c:\temp\CustomerTable.bcp" -N -S TARGETSERVERNAME -T
- -N 使用本机类型
- -T 使用可信连接
- -S 服务器名
非常快速且易于嵌入代码中。(我已经围绕这个命令构建了一个数据库备份(恢复)系统。
您可以查看以下文章,了解如何使用 SQL Server 本机工具和第三方工具执行此操作:SQL Server 大容量复制和大容量导入和导出技术
免责声明:我作为支持工程师在 ApexSQL 工作
希望这可以帮助
您始终可以将数据从客户表导出到 Excel 文件,然后将该数据导入到客户表中。
导入/导出数据:
- 右键单击数据库
- 前往任务
- 转到导入数据或导出数据
- 将数据源更改为Microsoft Excel
- 按照向导
如果两个数据库位于同一个 SQL Server 实例中,即使用相同的连接,则此 SQL 可能会有所帮助:
INSERT INTO [DestinationDB].[schema].[table] ([column])
SELECT [column] FROM [OriginDB].[schema].[table]
GO
对于 SQL server 2005 中作为 SQL 脚本的 Data Expoer,
我只是想为 Sql Server Management Studio 2008 添加一些屏幕截图。使用前面描述的步骤是正确的。当您有“生成和发布脚本”->“设置脚本选项”时,然后按高级查看脚本选项:
![在哪里可以找到高级脚本选项]:图像丢失,因为我没有正确的声誉:(
对于 Sql Server Management Studio 2008,包含数据的选项是“脚本的数据类型”
![脚本的数据类型]:图像丢失,因为我没有正确的声誉:(