使用publishing转移MS SQL数据

最近,将网站从国内网站搬移到了Lunarpage,程序转移比较简单,使用cuteftp上传上去就可以了。但是数据库转移一直都是很棘手的一个问题。本文介绍数据库转移的方法。

数据库转移最简单的方法是使用DTS,但是Lunarpages数据库不支持远程数据库链接,所以无法使用DTS,因此只好使用publishing转移数据。

具体步骤如下:

Step1. 运行 SqlPubWiz.exe

Publishing类似MS SQL的一个插件,你可以到

http://www.microsoft.com/downloads/details.aspx?FamilyId=56E5B1C5-BF17-42E0-A410-371A838E570A

下载,运行后可以在tools下找到

Step2 运行后,会出现运行向导,找到本地数据库

Step3.选项要生成的类型,系统会自动检测可用内容,一般之选择“表”“存储过程”和“视图”,对于Users就不要让系统生成了

点击Next,一直完成。

更改数据库拥有者

以下是核心,非常重要,否则不会成功。

在我们使用网站时,通常会使用SP给我们的账户,例如我原来的数据库叫做 “bf4190_”

当时网站供应商给我的账户为 bf419,则系统生成的数据表如下

你可以看到,有的表前面有前缀bf419,有的有前缀dbo (db哦,是database owner),这很不同。因为在我们建立表时,脚本的写法略有区别。

写法一:

CREATE TABLE [dbo].[ads]  (

[id] [int] IDENTITY(1,1) NOT NULL,

[name] [nvarchar](200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[img] [nvarchar](200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

}

写法二:

CREATE TABLE [ads]   (

[id] [int] IDENTITY(1,1) NOT NULL,

[name] [nvarchar](200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

[img] [nvarchar](200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

 

}

对于第一种,生成的表就是 dbo.ads, 而第二个表则是 bf419.ads,因为你的bf419其实就是dbo,所以系统可以运行。

但是,当你把数据库转移到新的服务商时,如果你的账户叫做XXXX,则上面建立bf419.ads则出现错误,而用 dbo.ads 则完全没有问题。

通常新旧服务商给用户开的用户名并不一样,所以我们需要更改一下数据库的所有者。

时间: 2024-08-31 02:09:21

使用publishing转移MS SQL数据的相关文章

PHP教程:PHP不能读取MS SQL数据表

原因可能是:php对mssql的ntext类型的支持问题; 今天弄了半天,明明可以链接到数据库,却不能读取的数据.Google,百度一番之后终于知道了,原来是php读取mssql的 ntext字段反回值为空的,建议可以把ntext字段改成 text. 如果是表里面没有ntext字段,可以用以下代码: <?php // Connect to MSSQL $link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi'); if(!$link !m

MS SQL数据批量备份还原(适用于MS SQL 2005+)

我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较麻烦: 还好,微软自带的osql工具,比较实用,通过在命令行里里输入命令,也能实现数据库备份的功能:如果能通过sql语句来生成一个批处理文件,那就方便了: 下面即是生成批处理文件的sql脚本,通过它可以实现:运行一个批处理文件,备份数据库服务器上的所有数据库到指定目录. 生成批量备份脚本: /**************************************

从access到MS SQL SERVER数据导入?

access|server|数据   一般有两种方法:   一是使用ms sql server 的DTO进行导入操作,一步一步按提示操作就行了.但这个过程中可能有的字段属性会改变,主键也没了.通常这种方法要sql建表语句配合使用. 另外一种方法是采用access提供的数据库升迁向导,前面的几个bug都没有了,目前还没有发现什么隐含的bug.这个升级方法应该是首选了.  

Web环境下MS SQL Server中数据的磁带备份与恢复

server|web|备份|恢复|数据 摘 要:介绍了磁带数据备份及恢复的工作过程,包括在硬盘上建立了一个与磁带的容量相当的数据库,即桥数据库和在Web信息系统中要实现完整的磁带数据备份及恢复功能.从理论与实践上阐述了如何利用SQL中现有的数据库备份和恢复的命令以及NT中的IDC技术. 关键词:Web信息系统:磁带数据备份:桥数据库:IDC文件:数据恢复 1 引言 实现磁带备份数据的功能有两方面的困难:首先,MS SQL Server(以下简称SQL)所提供的数据库的整体备份及恢复功能不能直接满

MS SQL基础教程:数据库更新-添加数据

一个数据库能否保持信息的正确性.及时性.很大程度上依赖于数据库的更新功能的强弱与实时.数据库的更新包括插入.删除.修改(也称为更新)三种操作.本章将分别讲述如何使用这些操作,以便有效地更新数据库. 在SQL Server 中可以在Enterprise Manager 中查看数据库表的数据时添加数据,但这种方式不能应付数据的大量插入,需要使用INSERT 语句来解决这个问题. 11.1.1 INSERT 语法 数据库的信息时常需要改变用户需要添加数据,INSERT 语句提供了此功能.INSERT语

MS SQL基础教程:通过视图管理数据

视图与表具有相似的结构,当向视图中插入或更新数据时,实际上对视图所引用的表执行数据的插入和更新.但是通过视图插入.更新数据和表相比有一些限制,下面通过具体的例子来讲述通过视图插入.更新数据以及其使用的限制. 使用SELECT 语句,可以在视图和表中查到该条记录.但是如果执行下面的语句,虽然仍可以成功执行,但只可以在表而不是视图中查到该条数据. 注意:由于向视图插入数据实质是向其所引用的基本表中插入数据,所以必须确认那些来包括在视图列但属于表的列允许NULL值或有缺省值. 若要执行INSERT 语

MS SQL基础教程:读取游标中的数据

当游标被成功打开以后,就可以从游标中逐行地读取数据,以进行相关处理.从游标中读取数据主要使用FETCH 命令.其语法规则为: 各参数含义说明如下: •NEXT 返回结果集中当前行的下一行,并增加当前行数为返回行行数.如果FETCH NEXT是第一次读取游标中数据,则返回结果集中的是第一行而不是第二行. •PRIOR 返回结果集中当前行的前一行,并减少当前行数为返回行行数.如果FETCH PRIOR是第一次读取游标中数据,则无数据记录返回,并把游标位置设为第一行. •FIRST 返回游标中第一行.

MS SQL基础教程:更新数据

11.3.1 UPDATE 语法 用户可以用UPDATE 语句来更新表中一列或多列数据值,其语法如下: 各参数说明如下: SET SET 子句用于指定更新的方法,即用的值取代相应的列的值.如果省略 WHERE 子句,那么表中的所有数据均会受到影响.在FROM 子句中指定的表或列的别名不能用于SET 子句中. column_name 指定要更新数据的列.IDENTITY 列不能被更新. expression 可以是常量.变量.表达式或返回单个值的子查询. DEFAULT 指定使用已经定义的缺省值作

常用的MS SQL Server数据修复命令

MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令. 1. DBCC CHECKDB 重启服务器后,在没有进行任何操作的情况下,在SQL查询分析器中执行以下SQL进行数据库的修复,修复数据库存在的一致性错误与分配错误. use master declare @databasename varchar(255) set @databasename='需要修复的数据库实体的名称' exec sp_dboption @databasename