博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将Sqlserver2012Express的mdf文件同步到SqlServer2008
阅读量:6264 次
发布时间:2019-06-22

本文共 2354 字,大约阅读时间需要 7 分钟。

背景:当下电脑上有SqlServer2008的完整安装,他人提供给了我2012版本的mdf文件,但是打开后无法附加2012的mdf文件,因为版本不一致。

解决办法:

 

1,首先安装了SqlServer2012 Express的核心引擎,创建了2012的实例。从而可以用2008 Studio打开该实例,但是无法打开“附加”功能的交互窗体,猜测是视图版本不一致。

2,继续安装SqlServer2012 Express的Studio,则可以用2012 Studio打开实例、也可以用2008 Studio打开实例,而后打开“附加”功能,附加mdf从而创建了2012版本的数据库。

 

要将2012版本的数据库同步复制到2008版本,还需要继续操作:

 

1,2012 Studio中可以创建脚本,其中“高级”处的配置“要编写脚本的数据的类型”要是“架构和数据”。结果生成的数据库脚本不能够在2008上成功执行。

USE [master]GO/****** Object:  Database [PAMPFlowConfig]    Script Date: 2014/4/2 16:52:45 ******/CREATE DATABASE [PAMPFlowConfig] CONTAINMENT = NONE ON  PRIMARY ( NAME = N'PAMPFlowConfig', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\PAMPFlowConfig_new.mdf' , SIZE = 10240KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'PAMPFlowConfig_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\PAMPFlowConfig_new_log.LDF' , SIZE = 3136KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GOALTER DATABASE [PAMPFlowConfig] SET COMPATIBILITY_LEVEL = 100GOIF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))beginEXEC [PAMPFlowConfig].[dbo].[sp_fulltext_database] @action = 'enable'endGOUSE [PAMPFlowConfig]GO/****** Object:  Table [dbo].[Case_Config_Annuity_Fee]    Script Date: 2014/4/2 16:52:45 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[Case_Config_Annuity_Fee](	[country] [varchar](10) NOT NULL,	[year] [int] NOT NULL,	[applicantType] [int] NOT NULL,	[appType] [int] NOT NULL,	[amount] [decimal](18, 2) NOT NULL,	[currency] [varchar](32) NOT NULL, CONSTRAINT [PK_Case_Config_Annuity_Fee] PRIMARY KEY CLUSTERED (	[country] ASC,	[year] ASC,	[applicantType] ASC,	[appType] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]

2,继而尝试使用2008Studio生成脚本,其中设置“编写数据的脚本”要为True。该脚本不会自动创建database,所以要首先创建一个2008版本的对应新数据库,然后直接执行该脚本则可将数据库结构与数据都成功复制!

3,因为我们在开发时经常改动数据库,从而需要比较数据库的区别并同步,所以此时最好也同样使用Sql Compare工具检查一下两个数据库是否一致。如果不一致,直接使用该工具的同步功能进一步调整。

 

相关知识:

1,数据库的导入导出功能使用时,如果有identity列,则要选中“启用标识插入”。否则会插入失败。

2,如果一个表temp表中id列为自增列,则

insert into temp(id)select 1

 会报错,因为自增列不允许插入。

解决方法:

TRUNCATE TABLE tempSET IDENTITY_INSERT temp ON

 即清空表,而后将该字段置为可插入,则可成功执行。而后将其重新置为不可插入即可:

SET IDENTITY_INSERT temp OFF

 

 

 

转载于:https://www.cnblogs.com/zhaoyijie/p/3641277.html

你可能感兴趣的文章
audit.rules
查看>>
Windows 10企业批量部署实战之WDS配置
查看>>
百元百鸡问题
查看>>
Microsoft System Center 2012部署(二)
查看>>
谈谈网站安全性的问题
查看>>
SQL Server 2017 AlwaysOn AG 自动初始化(三)
查看>>
AIX+RAC数据服务器开关机流程
查看>>
网关配置错误导致Outlook无法连线
查看>>
MongoDB查询 之 数组、内嵌文档和$where
查看>>
MS UC 2013-0-Prepare Tool
查看>>
《3D数学基础》2.1 矩阵基本概念、2.2 矩阵的数乘和加减法、2.3 方阵
查看>>
SCOM 2012 R2监控Microsoft Azure服务(1)配置管理包
查看>>
Lync Server外部访问系列PART5:模拟公网DNS
查看>>
[置顶] 基于ip的手机地理定位
查看>>
动态方法与动态代理(下篇)
查看>>
如果有天你看到我疯了,其实就是你疯了
查看>>
information_schema資料庫表信息
查看>>
使用W“.NET技术”CF实现SOA面向服务编程——简单的WCF开发实例
查看>>
【C#】利用TREE VIEW控件控制节点
查看>>
spring开发_使用p名称空间配置属性
查看>>