代码之家  ›  专栏  ›  技术社区  ›  Doctor Blue

使用Tarantino数据库管理创建ASP.NET成员资格表

  •  2
  • Doctor Blue  · 技术社区  · 15 年前

    我将Tarantino数据库管理引入到一个项目中,这个项目有一个全新的数据库模式。唯一的变化(位于 0001_InitialSchema.sql )是ASP.NET成员资格中使用的表的创建。我使用 aspnet_regsql.exe 然后将它们编写为CREATE TO脚本,然后将它们合并到我的单个Tarantino sql文件中。

    在运行我的NAnt构建脚本时 drop database 命令在试图从它试图删除的数据库中删除所有连接时阻塞。

    正在删除数据库DBName的连接

    [调用]执行Transact-SQL语句或批处理时发生异常。

    [调用]只能终止用户进程。

    这会导致以下情况 create database 步骤失败,因为数据库仍然存在,并且不会应用新的更新:

    管理SQL数据库:

    使用path\to\source\src\Database中的脚本在localhost上创建DBName

    生成失败-1个非致命错误,0个警告

    内部错误

    一些系统进程总是在脚本运行后很好地连接到数据库。我试过在不同的机器上运行这个,同样的问题也存在。我也试过运行一个不同的Tarantino项目,每次都运行得完美无瑕。我甚至创建了一个虚拟更新文件(其中添加了表Foo、Bar等),运行起来也没有问题。问题似乎源于ASP.NET成员资格表的创建表脚本。

    您可以找到运行的SQL更新脚本的副本 at PasteBin

    1 回复  |  直到 5 年前
        1
  •  2
  •   Chris Missal    12 年前

    那将是塔伦蒂诺的一个错误。如果你调查 DropConnections.sql is_user_process 中的列 sys.dm_exec_sessions .