Sql server 2008 在应用程序启动时创建elmah表和存储过程

Sql server 2008 在应用程序启动时创建elmah表和存储过程,sql-server-2008,asp.net-mvc-4,elmah.mvc,Sql Server 2008,Asp.net Mvc 4,Elmah.mvc,我能够使用脚本创建elmah表和存储过程: 使用SQLServerManagementStudio。而且很好吃 但我希望能够从代码中创建该表和存储过程。我应该在哪里以及如何做?当我使用实体框架迁移时,我正在从我的初始迁移中的Up()方法运行它(下载ELMAH-1.2-db-SQLServer.sql文件): a提示:删除最后一个“GO”语句!(我还删除了脚本的第一部分,以检查兼容性版本…@X.L.Ant抱歉:)我想您只需在global.asax文件中添加一些代码,检查数据库中是否存在SP,并在

我能够使用脚本创建elmah表和存储过程:

使用SQLServerManagementStudio。而且很好吃


但我希望能够从代码中创建该表和存储过程。我应该在哪里以及如何做?

当我使用实体框架迁移时,我正在从我的初始迁移中的
Up()
方法运行它(下载
ELMAH-1.2-db-SQLServer.sql
文件):


a提示:删除最后一个“GO”语句!(我还删除了脚本的第一部分,以检查兼容性版本…

@X.L.Ant抱歉:)我想您只需在global.asax文件中添加一些代码,检查数据库中是否存在SP,并在需要时创建它们。
 public override void Up()
 {
        string[] ElmahCommands = GetElmahStructureScript();
        foreach (string line in ElmahCommands)
        {
            Sql(line);
        }
        //...
}

public static string[] GetElmahStructureScript()
{
        string sqlConnectionString = new MyDbContext().Database.Connection.ConnectionString;
        Regex regex = new Regex("^GO", RegexOptions.IgnoreCase | RegexOptions.Multiline);
        string[] lines = regex.Split(ElmahScript);
        return lines;
}

static string ElmahScript = @"
CREATE TABLE [dbo].[ELMAH_Error] ...
...
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON";