Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

затваряне/убиване на транзакция

Първо трябва да разберете какво прави, откъде идва и, ако е приложимо, колко още може да се очаква да работи:

SELECT 
   r.[session_id],
   c.[client_net_address],
   s.[host_name],
   c.[connect_time],
   [request_start_time] = s.[last_request_start_time],
   [current_time] = CURRENT_TIMESTAMP,
   r.[percent_complete],
   [estimated_finish_time] = DATEADD
       (
           MILLISECOND,
           r.[estimated_completion_time], 
           CURRENT_TIMESTAMP
       ),
   current_command = SUBSTRING
       (
           t.[text],
           r.[statement_start_offset]/2,
           COALESCE(NULLIF(r.[statement_end_offset], -1)/2, 2147483647)
       ),
   module = COALESCE(QUOTENAME(OBJECT_SCHEMA_NAME(t.[objectid], t.[dbid])) 
       + '.' + QUOTENAME(OBJECT_NAME(t.[objectid], t.[dbid])), '<ad hoc>'),
   [status] = UPPER(s.[status])
 FROM
     sys.dm_exec_connections AS c
 INNER JOIN
     sys.dm_exec_sessions AS s
     ON c.session_id = s.session_id
 LEFT OUTER JOIN
     sys.dm_exec_requests AS r
     ON r.[session_id] = s.[session_id]
 OUTER APPLY
     sys.dm_exec_sql_text(r.[sql_handle]) AS t
 WHERE
     c.session_id = 54;

Ако сте уверени, че можете да прекъснете тази връзка, можете да използвате:

KILL 54;

Само имайте предвид, че в зависимост от това какво прави сесията може да остави данните и/или приложението, което ги е извикало, в странно състояние.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оптимистично срещу песимистично заключване

  2. Кой е най-добрият начин да се изпише с главни букви първата буква на всяка дума в низ в SQL Server

  3. Време за изчакване на връзката за SQL сървър

  4. SQL Server PIVOT може би?

  5. Актуализация с множество условия. SQL 2008