日期:2014-05-18  浏览次数:20620 次

SQL Server2008和SQL Server2008R2的区别,高手速进!
请问一下SQL Server2008和R2版本的区别,我现在在R2版本上使用VS2008 C#开发的程序,请问在SQL Server2008环境下可以正常运行吗?

  另外自己电脑安装的是SQL Server2008R2版本,客户用的是SQL Server2008版本,可以讲数据库正常移植到客户那里吗?

  请大神不吝赐教....万分感谢!

------解决方案--------------------
SQL Server 2008 R2基于SQL Server 2008提供可靠高效的智能数据平台构建而成,SQL Server 2008 R2 提供了大量新改进,可帮助您的组织满怀信心地调整规模、提高 IT 效率并实现管理完善的自助 BI。此版本中包含应用程序和多服务器管理、复杂事件处理、主数据服务及最终用户报告等方面的新功能和增强功能。
SQL Server 2008 R2新增了大量重要功能,在性能和可扩展性方面也有了极大提升。主要功能包括:
PowerPivot:
这是一种自主托管分析方案,帮助终端用户在IT管理环境中使用Excel 2010和SharePoint 2010访问、分析和共享企业数据。
主数据服务:
帮助IT组织实现中央管理全公司及跨系统的重要数据资产,允许更多用户安全地直接管理主数据。
应用程序和多服务器管理:
帮助企业前摄地管理数据库环境。
Report Builder 3.0
StreamInsight
其主要特性包括:
实用性高的可信赖和可扩展平台,主数据服务支持异构系统间的数据协调,StreamInsight能够实现对大规模复杂事件的处理,并支持多达256个逻辑处理器的大型应用程序。
通过对多种数据库应用程序、实例或服务器的集中管理提高IT和开发人员的效率,加快应用程序的开发和部署,通过 Windows Server 2008 R2中的Hyper-V来完善对虚拟化和实时迁移的支持。
可托管的自助式商业智能(self-service business intelligence)赋予企业用户在无IT支持的情况下创建并分享强大的商业智能(BI)方案的能力,同时还可以使用Excel和 SharePoint中最新的PowerPivot技术监控和管理终端用户生成的BI方案。
------解决方案--------------------
可以正常移植。
------解决方案--------------------
SQL Server 2008 和 SQL Server 2008 R2 共享 SQL Server 的同一主版本,因此共享某些 SQL Server 组件。在安装有 SQL Server 2008 的实例的同一台计算机上安装 SQL Server 2008 R2 的实例时,这些共享组件将升级到最新版本,因此在这个情况下将升级到 SQL Server 2008 R2 的版本。

具体信息可以参见下面两篇msdn文章:

新增功能 (SQL Server 2008 R2):http://msdn.microsoft.com/zh-cn/library/bb500435.aspx

SQL Server 2008 R2 和 SQL Server 2008 的并行实例的注意事项: http://msdn.microsoft.com/zh-cn/library/ee210714.aspx
------解决方案--------------------
http://soft.chinabyte.com/422/11107922.shtml
------解决方案--------------------
理论上可以正常移植
------解决方案--------------------
08备份出bak,r2还原,单位开发环境08,现场机r2,一直正常使用。
------解决方案--------------------
在SQL Server2008环境下可以正常运行,移植也没有问题
------解决方案--------------------
一般如果现场附加不上,有个偏方,就是新建一个同名的数据库,然后删除自动生成的.mdf 和.log文件,用自己的覆盖之即可
------解决方案--------------------
SQL code

MSSQL2008新增功能
用一条语句添加多条记录:
create table t1
(
    id int
)
insert into t1 (id) values (1),(3),(5),(7)
可以通过元素数组方式。

定义变量的同时可以赋值:
declare @max int=(select MAX(id) from t1)
select @max

使用VALUE语句生成表值函数
select * from 
(
    values 
    (10003,'20090213',4,'B'),
    (10004,'20090214',1,'A'),
    (10005,'20090213',1,'C'),
    (10006,'20090215',3,'C')
) AS t1(orderid,orderdate,empid,custid)
结果:
 
其中t1是虚拟表的别名。

支持复合赋值运算符:
+=(相加并赋值);
-=(相减并赋值);
*=(相乘并赋值);
/=(相除并赋值)。
示例:
qty=qty+5可以写成qty+=5

MERGE语句:
示例:
merge into dbo.temporders a
using TSQLFundamentals2008.sales.orders b
on a.orderid=b.orderid
when matched then 
update set a.empid=b.empid 
when not matched then 
insert (orderid,orderdate,empid,custid)
values (b.orderid,b.orderdate,b.empid,b.custid)
when not matched by source
delete;
在这个示例中,dbo.temporders是要操作的目标表,TSQLFundamentals2008.sales.orders是来源表。
when matched then子句中定义当目标表中的一行和来源表中的一行能够匹配时进行的操作;
when not matched then子句中定义当目标表中没有行能够与来源表中的行进行匹配时进行的操作。
when not matched by source子句中定义当目标表中的某一行在来源表中找不到匹配时进行的操作。
还可以使用AND选项在以上子句后面增加条件。

表类型: 
创建一个表类型,以后在定义表变量的时候,就可以直接使用该表类型。
创建表类型:
create type dbo.OrderTotalsByYear as table
(
    orderyear int not null primary key,
    qty int not null
)
定义一个表变量直接使用表类型:
declare @MyOrderTotalsByYear as dbo.OrderTotalsByYear
insert into @MyOrderTotalsByYear (orderyear,qty)
select YEAR(a.orderdate) as orderyear,SUM(b.qty) as qty from sales.Orders a inner join sales.OrderDetails b on a.orderid=b.orderid group by YEAR(a.orderdate)
select * from @MyOrderTotalsByYear