• Something has to be blocking the truncate table statement. This is kind of an old school script as it uses code from sp_lock, but it should tell you exactly which connections have locks on the table and what type of locks they are.

    declare @tablename sysname

    select @tablename = 'Replace with your table name'

    select convert (smallint, req_spid) As spid,

    rsc_dbid As dbid,

    rsc_objid As ObjId,

    rsc_indid As IndId,

    substring (v.name, 1, 4) As Type,

    substring (rsc_text, 1, 32) as Resource,

    substring (u.name, 1, 8) As Mode,

    substring (x.name, 1, 5) As Status

    from master.dbo.syslockinfo,

    master.dbo.spt_values v,

    master.dbo.spt_values x,

    master.dbo.spt_values u

    where master.dbo.syslockinfo.rsc_type = v.number

    and v.type = 'LR'

    and master.dbo.syslockinfo.req_status = x.number

    and x.type = 'LS'

    and master.dbo.syslockinfo.req_mode + 1 = u.number

    and u.type = 'L'

    and rsc_objid = object_id(@tablename)