SQL Sever 导入数据演示 (在新开通数据库时,您需要使用这项功能将本机上数据导入到我们服务器上 )
|
|
有很多用户新开通数据库后问我们 怎么将自己本地数据库 数据发布到 我们的服务器上.
一般有两种方法: 1. 数据库还原, 实际数据库库还原 不能达到这个目的, A: 用户没有权限做数据库还原. B: 用户本地数据库和我司服务器数据库的用户名不一致.
2. 数据库导入: 这种方法可以较好的解决问题.但一些细节需要注意. 思路如下:
A: 将本地数据库表,存储过程.视图等. 生成 Sql脚本. * B: 使用我司服务器提供的数据库用户名替换 Sql脚本里面的用户名. C: 在我司数据库服务器运行 新生成的Sql脚本, 这样就在服务器上创建好了数据库表和存储过程结构. D: 在我司数据库服务器 运行数据库导入导出, 将本地数据库的数据 发布到服务器上. 导入过程完成.
下面就详细演示一下流程.
|
| 1. 首先选择本地服务器(数据源)数据库, 选择 "所有任务" 下的 "生成SQL脚本" ,选择 "编写全部对象脚本" 或者 根据您数据库实际, 选择 "全部表","全部存储过程","全部视图" 等. |
|
 |
| 2. 选择 "选项" 选种 表脚本选项 中间的 几个项目. 其中 "编写主要健,外键, 默认值和检查约束脚本" 非常重要. 必选, 单击确定. 保存文件成一个sql脚本(ex.sql) |
| |
 |
| 3. 编辑 脚本文件(ex.sql),将文件中的用户名删除(因为服务器上的数据库用户名和你本地数据库用户名不一样,不删除会导致问题), |
|
你可以使用文本编辑器(记事本/写字板/EditPlus) 等.替换所有的用户名 替换为空格,一般用户名为 dbo 或者你自己分配的用户名
1) 将"[username]." 替换为 空格. 例如 "[dbo]." 替换为 空格 2) 将"username." 替换为 空格. 例如 "dbo." 替换为 空格 例如: 下面是一个删除存储过程的sql脚本
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[product_3]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[product_3]
替换后 就为
if exists (select * from sysobjects where id = object_id(N'[product_3]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [product_3]
注意 要将 dbo. 和[dbo]. 都替换为空格. 否则 下面的步骤将不能正常运行
|
| 4. 连接上目标服务器数据库(我司数据库服务器),执行修改后的sql脚本文件,这样 源数据库 和目标数据库的数据库对象(表,视图,存储过程等)就完全相同了. 开始准备导入和导出数据 |
|

Sql运行界面
数据库建立时注意问题: 在 执行sql 语句时会出现警告提示. 都是正常的.可以忽略, 例如
警告: 已创建表 'authors',但其最大行大小(16128)超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失败。
这是一个警告提示.但可以忽略.
|
| 5. 在目标数据库,右击您准备导入数据的数据库,选择“所有任务”下的“导入数据” |
|
 |
| 6. 进入DTS导入/导出向导,点击“下一步”按钮继续 |
|
 |
| 7. 选择数据源,输入数据源所在的数据库服务器名称、用户名、密码和要复制数据的源数据库,点击“下一步”按钮 |
|
 |
| 8. 选择目的,输入目的数据库所在的数据库服务器名称、用户名、密码和要复制数据的目的数据库,点击“下一步”按钮 |
|
 |
| 9. 选择复制方式,一般选“从源数据库复制表和视图”,点“下一步”继续 |
|
 |
| 10. 选择要复制的表和视图,点“下一步”继续 |
|
 |
| 11. 设定调度方式,一般选“立即运行”就可以,然后点“下一步”继续 |
|
 |
| 12. 点“完成”执行 |
|
 |
| 13. 数据导入完成 |
| |
 |
| |
|
| 14 |
数据库导入常见问题总结: |
|
A. 导入后 网站页面不能正常运行.提示错误:
例如:程序错误现象: Microsoft OLE DB Provider for SQL Server 错误 '80040e2f' 无法将 NULL 值插入列 'id',表 'db_dbname.online';该列不允许空值。INSERT 失败。
这是由于 用户在做 第2步 时没 "选表脚本选项" 里面的几个项目. 导致您数据库 丢失主键,默认值等.. 解决方法: 重新做 数据库导入操作.
B.如何替换sql脚本里面的用户名信息?
用户在第1步 生成的sql脚本. 里面包含您本地数据库用户名信息的. 由于您本地数据库用户和服务器上数据库用户名不一样. 必须替换掉才行. 用户本地数据库用户名 一般是 dbo 等 详细替换步骤 看 步骤3
C.在执行sql 脚本时 有警告提示,可以忽略,不影响数据库使用.如果有错误提示,说明数据库生成的脚本有问题. 警告: 已创建表 'authors',但其最大行大小(16128)超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,则此表中行的 INSERT 或 UPDATE 将失败。
这种警告提示可以忽略.
|