客户支持
  fun88体育在线登录 域名注册 虚拟主机 营销通 网站推广 网站建设 企业邮局 优惠套餐 联系我们 汇款方式 
fun88体育在线登录
客户支持首页
热门文章排行
更多... 
 
热门问题列表
首页 -> 客户支持
【推荐】SQL Sever 导入数据演示-数据库维护重要方式

查看次数:735957   更新时间:2006/8/18    
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 将失败。

这种警告提示可以忽略.

[返 回]
深圳市四叶草网络科技有限公司 sycnet.net (四叶草网络)