sql server 2008数据库 降为 sql server 2005数据库 最终方案总结

由于xx原因,sql server 要降级,所以有了下文。。。。

一 直接 通过sql server 自带工具 生成脚本即可,具体操作方法如下:

1.打开 Microsoft Sql Server Managenment Studio

2.右键该数据库>>任务>>生成脚本

3.按提示操作下一步,直到看到高级按钮,这时如下图操作

如果生成的脚本文件不大,将生成的脚本直接在查询分析器 执行即可

也可以尝试将每个对象生成一个文件后执行

如果脚本文件较大则 需要 分割文件后执行

如果单文件(整个库)执行过大的时候,可以尝试这样:

1.先把每一类脚本文件分组后执行,如下图

2.用以下程序逐个执行 xxtables xxviews xxfunctions  xxproc

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TestSql.aspx.cs" Inherits="TestSql" %>
<%@ Import Namespace="System.Collections.Generic" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.IO" %>
<% string xx = "100";

   string[] filelist = Directory.GetFiles(Server.MapPath("~/website1/xxtables"));
   if (Request["dir"] != null) filelist = Directory.GetFiles(Server.MapPath("~/website1/"+Request["dir"].ToString()));
     foreach (string fileInfo in filelist)
     {
         List<string>errorList=new List<string>();

         //string fileName = "users.sql";
         //if (Request["sqlfile"] != null) fileName = Request["sqlfile"].ToString();
         //string strSql = System.IO.File.ReadAllText(Server.MapPath("~/website1/" + fileName + ""));
         ////Response.Write(strSql);
         ///
         string strSql = System.IO.File.ReadAllText(fileInfo);

         string constr = "data source=.;uid=sa;[email protected];database=21744new"; // 定义链接字符窜

         constr = "data source=localhost;uid=21744;pwd=123456789;database=21744"; //公网

         SqlConnection conn = new SqlConnection(constr);
         conn.Open();

         SqlCommand cmd = new SqlCommand();
         cmd.Connection = conn;
         //cmd.CommandText = strSql;            //为SqlCommand赋Sql语句;
         //cmd.ExecuteNonQuery();
         //conn.Close();

         //ArrayList Lists = Lj.ExecuteSqlFile(Server.MapPath("NetShop.sql")); //调用ExecuteSqlFile()方法,反回 ArrayList对象;
         String[] Lists = strSql.Split(new string[] {"\r\nGO\r\n"}, StringSplitOptions.RemoveEmptyEntries);
         string teststr = ""; //定义遍历ArrayList 的变量;
         string errorMsg = "";
         foreach (string varcommandText in Lists)
         {
             try
             {
                 teststr = varcommandText; //遍历并符值;
                 //Response.Write(teststr + "|@|<br>");
                 cmd.CommandText = teststr; //为SqlCommand赋Sql语句;
                 cmd.ExecuteNonQuery();
             }
             catch (Exception ex)
             {
                 errorList.Add(ex.Message);
                 errorMsg += teststr + "<br/>";
             }
             //执行
         }
         conn.Close();

         Response.Write("执行完毕 ok啦,错误信息如下:errorMsg:" + errorList.Count.ToString()+">>"+fileInfo+"<br/>");
     }

%>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>

当然如果客户端环境支持的话,也可以通过这种方式

string[]filelist=Directory.GetFiles(Server.MapPath("~/xxtables"));
    foreach (string fileInfo in filelist)
    {

        string sqlConnectionString = "data source=.;uid=sa;[email protected];database=21744new";
        //sqlConnectionString = "data source=localhost;uid=21744;pwd=123456789;database=21744";//公网
        FileInfo file = new FileInfo(fileInfo);
        string script = file.OpenText().ReadToEnd();
        SqlConnection conn = new SqlConnection(sqlConnectionString);
        Server server = new Server(new ServerConnection(conn));
        server.ConnectionContext.ExecuteNonQuery(script);
        Response.Write("完毕 OK");
        Response.Write(fileInfo+"<br/>");

    }

如果单个文件还是比较大的话,那只能先单独生成架构脚本,再生成数据脚本了(对数据脚本 进行文件分割)

下面是该例子完整源码

http://www.haolizi.net/example/view_3253.html

时间: 2024-10-10 10:18:51

sql server 2008数据库 降为 sql server 2005数据库 最终方案总结的相关文章

SQL Server 2008 R2如何生成带数据的数据库脚本

1.对想要复制的数据库右键,"任务","生成脚本" 2.下面需要注意的是,默认情况下,只会生成仅架构的脚本,也就是说仅仅有表结构,而没有数据的空壳.所以需要额外的设置. 在设置脚本编写选项,选择"高级" 然后在"要编写脚本的数据类型",选择"架构和数据" 3.运行生成的脚本. 注意修改数据库文件的位置,因为可能脚本中的路径在目标计算机中并不存在. SQL Server 2008 R2如何生成带数据的数据库脚

使用SQL Server 2008远程链接时SQL数据库不成功的解决方法

远程连接SQL Server 2008,服务器端和客户端配置 关键设置: 第一步(SQL2005.SQL2008): 开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Server 配置管理器-->SQL Server网络配置-->MSSQLSERVER(这个名称以具体实例名为准) 的协议-->TCP/IP-->右键-->启用 第二步: SQL2005: 开始-->程序-->Mi

SQL SERVER 2008 服务器登录名、角色,数据库用户、角色、架构知识点总结

SQL SERVER 2008 服务器登录名.角色,数据库用户.角色.架构的关系可以用下面一张图表示: 用例过程如下: 新建服务器登录名: 登录名角色选定: 新建数据库DB1: 然后新建数据库架构Schema1 再新建数据库用户名  User1 服务器登录名属于某组服务器角色:服务器登录名需要于数据库的用户映射后才拥有操作数据库的权限数据库用户属于某组数据库角色以获取操作数据库的权限数据库角色拥有对应的数据库架构,数据库用户可以通过角色直接拥有架构 服务器角色 public sysadmin--

SQL Server 2008 R2升级到SQL Server 2012 SP1

1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的SP1 或SP2 补丁包,在此运行安装已经下载好的SP2 补丁包,如图 3. SQL Server 2008 R2 更新运行检查,如图 4. 接受许可条款,如图 5. 选择功能,如图 6. 检查正在使用的文件,如图 7. 已准备好更新,选择"更新",如图 8. 更新完成,选择"关闭

SQL Server 2008 R2 SP3 and SQL Server 2008 SP4 are now available!

时间 2014-10-02 00:00:00 SQL Server Team Blog 原文  http://blogs.technet.com/b/dataplatforminsider/archive/2014/10/01/sql-server-2008-r2-sp3-and-sql-server-2008-sp4-are-now-available.aspx 主题 SQL Server SQL Microsoft is pleased to announce the release of

windows server 2008 R2 SP1 安装SQL Server 2008 R2时提示 &quot;此操作系统不支持此版本的 SQL Server 版本&quot;

windows server 2008 R2 SP1 安装SQL Server 2008 R2时提示 "此操作系统不支持此版本的 SQL Server 版本" 原因: 安装的时候输入了标准版的key ,换成企业版的key 就行了. 福利 企业版64位 key : GYF3T-H2V88-GRPPH-HWRJP-QRTYB

就地升级WSUS 3.0 SP2 ON windows server 2008 R2 ENT 到windows server 2012 R2 S

目标: Windows server 2008 r2 系统standard 版本不支持数据重删除,而wsus所在盘想启用dedup ,虽然网上说大概只有17%的去重率,但是如果占用空间在240GB,17%的去重率还是节省不少空间的. Inplace 升级wsus 3.0 sp2 到wsus 6是不支持的,官方的步骤是安装另外一台wsus服务器,然后迁移数据库.组.WSUS下载的文件,更改wsus的Identifier,再更改客户端WSUS Server指向. 因为之前的WSUS还有其他服务,比如

SQL SERVER 2008 服务器登录名、角色、数据库用户、角色、架构的关系

sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户可以对应多个架构(架构是表容器).架构里面包含的是数据库表. 2.一个数据库角色有可能涉及多个架构.数据库角色对应的是权限. 3.一个用户对应一个数据库角色. 4.登录名与数据库用户在服务器级别是一对多的:在数据库级别是一对一的. 服务器登录名:指有权限登录到某服务器的用户: 服务器角色:指一组固定的服务器用户,默认有9组: 登录名一定属于某些角色,默认为public 服务器角色不容许更改 登录后也不

学习笔记:windows server 2008 R2服务器搭建SQL Server 2008 R2环境

一.安装前准备 1.下载SQL Server 版本,在传送门左侧菜单服务器模块下选择相应的版本,因为服务器的操作系统版本是windows server 2008 R2,我选择的SQL Server 2008 R2版本. 2.为了使安装的进度加快,防止中途因残留而安装失败,我们先确定操作系统里面是否有SQL server的残余,先在控制面板的程序下面卸载SQL Server,之后为了卸载完全,利用Windows Clear Up将残留一并清除. 3.下载完SQL server 2008 R2后得到

SQL SERVER 2008 登陆失败(SQL和windows都没有对应的权限)

转自:http://www.cnblogs.com/zerocc/p/3425431.html 昨天在测试一些权限今天早上来就发现SQL SERVER 登陆不上去,报错为: 用户登陆失败:消息 18456,级别 14,状态 1,服务器 XXX,第 1 行 .  用户 'XXX' 登录失败.我的服务和代理都是自动启动的,所以问题不在这了,由于是本地服务,也没有多个帐户,测试的时候Sa也被自己禁用了.有的用户就是部分库的只读权限,怎么办呢? 方法就是:把 sql 启动到单用户模式,然后用 sqlcm