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

在SQLSERVER创建存储过程时发现SQLSERVER2008R2支持的.net版本是3.5
Open Microsoft Visual Studio >> Click New Project >> Select Visual C# >> Database >> SQL Server Project
在VS2010中创建了SQL SERVER工程

C# code
public partial class StoredProcedures
{
    [Microsoft.SqlServer.Server.SqlProcedure]
    public static void StoredProcedureMail()
    {
        // 在此处放置代码
        SqlPipe sp;
        sp = SqlContext.Pipe;
        String strCurrentTime = "Current System DateTime is: " + System.DateTime.Now.ToString();
        sp.Send(strCurrentTime);
    }
};

很简单的一个存储过程!编译通过,但是部署不能通过。

后来我就手工把编译好的DLL放到查询编辑器去 
SQL code
CREATE ASSEMBLY MyMailMan from 'D:\NetPro\SqlServerProjectForMyMailMan.dll' WITH PERMISSION_SET = SAFE


得到如下反馈
消息 6257,级别 16,状态 1,第 1 行
为程序集“SqlServerProjectForMyMailMan”执行 CREATE ASSEMBLY 时失败,因为该程序集是为公共语言用户时的不受支持的版本生成的。

我后来懂了,原来是不支持.net4.0, 后来我把项目的目标框架改成.net3.5 部署成功了!存储过程确实成功的创建了!

所以我的问题是,在那里让我的SQL SERVER 2008R2 支持.net4.0呢?
请大牛们支招!


------解决方案--------------------
你想想看是Sql Server 2008R2先出还是Vs2010先出不就明白了嘛