我正在使用Microsoft SQL Server 2014,并且遇到了一些试图创建临时表的问题。我之前运行过这段代码没有问题,但是当我今天试图运行查询时,我收到了两个错误之一“数据库中已经有一个名为'#AllClasses'的对象”或“数据库的事务日志由于'ACTIVE_TRANSACTION','tempdb'已满。“我已经粘贴下面的代码的一部分:数据库'tempdb'的事务日志已满,原因是'ACTIVE_TRANSACTION'
CREATE TABLE #AllClasses(studentId uniqueidentifier, ClassName nvarchar(100), SchoolName nvarchar(100), AcademicYearId uniqueidentifier, UserGroupId uniqueidentifier, SchoolId uniqueidentifier, ClassId uniqueidentifier, UserGroupOrganizationStatusId tinyint);
CREATE UNIQUE INDEX #I_AllClasses ON #AllClasses (StudentId, UserGroupId);
INSERT #AllClasses(studentId, ClassName, SchoolName, AcademicYearId, UserGroupId, SchoolId, sc.ClassId, u.UserGroupOrganizationStatusId)
SELECT sc.studentId, c.ClassName, u.UserGroupOrganizationName, c.AcademicYearId, c.UserGroupId, c.SchoolId, sc.ClassId, u.UserGroupOrganizationStatusId
FROM StudentClassCrossReference sc
INNER JOIN class c ON sc.ClassId = c.classId
INNER JOIN School s ON s.SchoolId = c.SchoolId
INNER JOIN dbo.UserGroupOrganization u ON u.UserGroupOrganizationId = s.UserGroupOrganizationId
GROUP BY sc.studentId, c.classname, u.UserGroupOrganizationName, u.UserGroupOrganizationId, c.AcademicYearId, c.UserGroupId, c.SchoolId, sc.ClassId, u.UserGroupOrganizationStatusId
HAVING u.UserGroupOrganizationStatusId = 0
当我尝试删除该表,我得到一个新的错误读取,“不能删除表‘#ALL类’,因为它不存在或您没有权限。“
DROP Table #LS25Student, #AllClasses, #LS25PageSession, #LS25PsByClass
,当我试图使用IF语句删除表,我收到了错误“的事务日志‘tempdb的’已满由于‘ACTIVE_TRANSACTION’。”
IF OBJECT_ID('tempdb.dbo.#AllClasses', 'U') IS NOT NULL
DROP TABLE #AllClasses;
IF OBJECT_ID('tempdb.dbo.#LS25Student', 'U') IS NOT NULL
DROP TABLE #LS25Student;
IF OBJECT_ID('tempdb.dbo.#LS25PageSession', 'U') IS NOT NULL
DROP TABLE #LS25PageSession;
IF OBJECT_ID('tempdb.dbo.#LS25PsByClass', 'U') IS NOT NULL
DROP TABLE #LS25PsByClass;
我能够运行其他查询没有问题。任何建议来解决这个特定的查询将不胜感激。
可能重复[数据库的事务日志已满](https://stackoverflow.com/questions/17674973/the-transaction-log-for-the-database-is-full) –
@GiulioCaccin谢谢对于这个建议,但是我对事务日志运行了一个查询,用于tempdb的日志空间只有31%。您提到的另一个查询也无助于理解为什么我创建的临时对象拒绝被删除或创建。除非我的建议中缺少某些东西。 – Lenny