
加好友 发短信
煤煤猪
点我查看个人信息
等级:清洁工
威望:0
帖子:757 / 1 / -51
积分:13001 / 3869
金钱:1866
财产:28 / 17
登录:共登录 1658 次
注册:2006-12-31 15:42:21
近访:2008-8-27 7:24:55
我的:主题集 精华集
我是广告,别摸我!
|
怎么将自己本地数据库数据发布到服务器上. Post By:2007-10-31 11:19:00
怎么将自己本地数据库数据发布到服务器上. 一般有两种方法: 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 将失败。
这种警告提示可以忽略.
|
|
|