none
SQL SERVER 2008 r2 中SMO与 SQL SERVER 2005 上调用有区别吗? RRS feed

  • 问题

  • SQL SERVER 2008 r2 中SMO与 SQL SERVER 2005 上调用有区别吗?

    之前在SQL2005环境下建的项目,现在生成的时候总出错,项目中只引用了SMO的几个相关类。


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年8月17日 9:11

答案

  • 不曉得你是用了哪些功能遇到錯誤,希望下列URL的內容對你有幫助。

    SQL Server 2008 中不推荐使用的数据库引擎功能


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已标记为答案 Dodu.NET 2011年8月18日 10:58
    2011年8月17日 9:18
  • 刚刚针对原来测试的电脑进行了 SP1 补丁的升级。

    发现升级完毕之后,就出现了刚才的问题,现在总结如下:

    sql2008r2之前的版本都还是可以正常调用SMO类的,SP1之后(含SP1)将不再支持此服务的调用。


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    • 已标记为答案 Dodu.NET 2011年8月18日 10:57
    2011年8月18日 10:56
  • SQL2008R2SP1已经把Assembly升级到.NET3.5,所以你需要把Project Setting里的Target Framework改为3.5以上,这样应该就可以编译成功。.NET3.5和.NET2.0使用相同的.NET RUNTIME,所以不会影响现有程序的运行,但是会影响编译。
    Hope it helps.
    • 已标记为答案 Dodu.NET 2011年8月18日 15:09
    2011年8月18日 14:23

全部回复

  • 不曉得你是用了哪些功能遇到錯誤,希望下列URL的內容對你有幫助。

    SQL Server 2008 中不推荐使用的数据库引擎功能


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    • 已标记为答案 Dodu.NET 2011年8月18日 10:58
    2011年8月17日 9:18
  • 我使用了SMO中的backup和RESTORE,在SQL2005中是正常的,这次重新安装系统,直接安装的是SQL2008R2,在我的事例中,一个类顶部这样引用了一个命名空间:

    Imports Microsoft.SqlServer.Management.Smo

    当每次打开vs2010的时候没有错误,可就是在生成应用程序的时候会提示这句有错误,且没有帮助提示,而在下文中使用backup和RESTORE时,自然也就无法定位这种类型了。


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年8月17日 13:55
  • 刚又找了一个SQL2008R2的电脑进行了测试,SQL2008R2还是可以正常使用所提供的SMO类库呢,是因为安装了SQL2008R2SP1之后才出现这样的问题呢。

    不过我看了sp1功能包的陈述:

    http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26728

    其中SharedManagementObjects.msi的说明,没有说去掉某些功能啊。


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年8月17日 22:50
  • 尝试在你的工程里增加一个到Microsoft.SqlServer.SmoExtended.dll的引用,在我的SQL SERVER 2008 SP1里Backup和Restore是定义在这个assembly里。
    Hope it helps.
    2011年8月18日 5:45
  • 有这引用,要不然在使用sql2005带的SMO的时候就不会正确的。

    你的环境是SQL2008R2sp1吗?还是同时存在SQL2005和SQL2008R2两个引擎?


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年8月18日 7:17
  • 我的环境只有SQL2008R2SP1,你是既有SQL2005也有SQL2008R2吗?最好把引用删除再加一次2008R2版本的Assembly
    Hope it helps.
    2011年8月18日 7:28
  • 不是的,我的只有2008R2SP1环境,可是总是出错?我截图给你们看


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年8月18日 7:55
  • 刚刚针对原来测试的电脑进行了 SP1 补丁的升级。

    发现升级完毕之后,就出现了刚才的问题,现在总结如下:

    sql2008r2之前的版本都还是可以正常调用SMO类的,SP1之后(含SP1)将不再支持此服务的调用。


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    • 已标记为答案 Dodu.NET 2011年8月18日 10:57
    2011年8月18日 10:56
  • Similar issue, sql2k8 ssms can access sql2k8 r2 instance but not sql2k8 r2 sp1 instance.
    2011年8月18日 14:06
  • SQL2008R2SP1已经把Assembly升级到.NET3.5,所以你需要把Project Setting里的Target Framework改为3.5以上,这样应该就可以编译成功。.NET3.5和.NET2.0使用相同的.NET RUNTIME,所以不会影响现有程序的运行,但是会影响编译。
    Hope it helps.
    • 已标记为答案 Dodu.NET 2011年8月18日 15:09
    2011年8月18日 14:23
  • 此乃正解,在没看到你的帖子的时候,我试着把系统中的。net2.0 的sdk从vs2008环境中拷贝过来,试了不行,然后试着把项目的编译选项该为3.5,bingo,一切恢复正常!!!

    谢谢!!!


    人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/
    2011年8月18日 15:09