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 = ""; 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;pwd=1@1.com;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;pwd=1@1.com;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
sql server 2008数据库 降为 sql server 2005数据库 最终方案总结的更多相关文章
- 使用SQL Server 2008远程链接时SQL数据库不成功的解决方法
		
关键设置: 第一步(SQL2005.SQL2008): 开始-->程序-->Microsoft SQL Server 2008(或2005)-->配置工具-->SQL Serv ...
 - 【转】SQL Server 2008 事件探查器(SQL SERVER Profiler)
		
跟踪数据库sql语句的执行情况.例:一个系统,用到了sql server 数据库,这个系统共有500张表,当用户在前台页面做某一个操作时,比如插入,登录等等,我们想知道此刻是在对哪一张表操作,打开事件 ...
 - SQL Server 2008 R2升级到SQL Server 2012 SP1
		
1.建议对生产环境对的数据库升级之前做好备份,以防不测. 2.从SQL Server 2008 R2 升级到SQL Server 2012 SP1,需要先安装SQL Server 2008 R2 的S ...
 - 安装 SQL Server 2008 和管理工具 SQL Server 2008 management studio 及相关问题解决
		
Sql Server 2008 问题小总结 http://www.lihengyu.com/blog/4877.html 安装 SQL Server 2008 和管理工具 SQL Server 200 ...
 - sql server 2008 64位连接sql 2000服务器的时候出现
		
来源 https://blog.csdn.net/loeley/article/details/7095741 sql server 2008 64位连接sql 2000服务器的时候出现以下提示: 链 ...
 - Windows Server 2008 R2 SP1安装SQL 2012安装报错之0x858C001B
		
使用Windows Server 2008 R2 SP1安装SQL 2012的时候总是报这样一个错: SQL Server Setup has encountered the following er ...
 - 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/arc ...
 - 阿里云服务器Windows Server 2008/2012部署Office Web Server 2013
		
以前成功将Office Web Server 2013部署在了本地服务器上,此次是将Office Web Server 2013部署在阿里云服务器Windows Server 2008和2012上,中 ...
 - SQL SERVER 2008 服务器登录名、角色、数据库用户、角色、架构的关系
		
sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户可以对应多个架构(架构是表容器).架构里面包含的是数据库表. 2.一个数据库角色有可能涉及多个架构.数据 ...
 - SQL Server 2008教程和Microsoft® SQL Server® 2008 R2 SP2 - Express Edition下载
		
教程 SQL Server 2008 Tutorialhttp://www.quackit.com/sql_server/sql_server_2008/tutorial/ 数据库下载 Microso ...
 
随机推荐
- Oracle 数据库分析
			
一.数据库分析 二.表的分析 1.分析表exec dbms_stats.gather_table_stats('SFISM4','R_SN_DETAIL_T',CASCADE=>TRUE);ex ...
 - selenium(四)操作cookie,伪造cookie
			
简介: Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上的数据. 常见的用途就是保留用户登陆信息,登陆时的7天免登陆,记住 ...
 - CSRmesh Application
			
1.CSRmesh Control Application v2.0.1版本可以运行在支持BLE4.0的Android设备上,该版本在Android4.4.4.5.0.5.0.1.5.0.2.5.1和 ...
 - L1-005 考试座位号
			
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位.正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考 ...
 - DevExpress v18.1新版亮点——WinForms篇(五)
			
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExpress WinForms v18.1 的新功能,快来下载试用新版本! ...
 - Loom
			
<iframe width="630" height="394" src="https://www.useloom.com/embed/a9d4 ...
 - Linux:at命令详解
			
at命令 at命令为单一工作调度命令.at命令非常简单,但是在指定时间上却非常强大 语法 at [选项] time at > 执行的命令 ctrl+d 选项 -m :当指定的任务被完成之后,将给 ...
 - Iterator、Iteratable与ListIterator
			
Iteratable: public interface Iterable<T> { Iterator<T> iterator(); default void forEach( ...
 - Swift中格式化日期
			
Swift语言中格式化日期跟其它编程语言很相似: var dformatter = NSDateFormatter() dformatter.dateFormat = "yyyy年MM月dd ...
 - 【error】no type named ‘type’ in ‘class std::result_of<void
			
Q: std::thread fs_module(fs_process, prob_orig, fb_sz, line_num, probp, plabel, std::ref(confidence_ ...