programing

SQL Server 오류 1222를 해결하는 방법, 즉 SQL Server 테이블 잠금 해제

nasanasas 2020. 11. 3. 08:07
반응형

SQL Server 오류 1222를 해결하는 방법, 즉 SQL Server 테이블 잠금 해제


데이터 로더에 의해 원시 테이블에 데이터를로드하는 데이터베이스에서 작업하고 있습니다. 그러나 오늘날 데이터 로더는 알 수없는 이유로 중단되었습니다. 그런 다음 Windows 작업 관리자에서 데이터 로더를 중지했습니다. 하지만 다시 원시 테이블에 데이터를로드하려고 시도했지만 잠긴 상태를 발견하고 이에 대해 작업을 수행 할 수 없습니다. SQL Server 서비스를 다시 시작하려고했지만 해결되지 않았습니다. 그리고이 서버에서 프로세스를 종료 할 권한이 없습니다.

다음은 SQL Server에서 표시하는 메시지입니다.

Transact-SQL 문 또는 일괄 처리를 실행하는 동안 예외가 발생했습니다. (Microsoft.SqlServer.ConnectionInfo)

프로그램 위치 :

Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (String sqlCommand, ExecutionTypes executionType)
에서 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery (StringCollection sqlCommands, ExecutionTypes executionType)
에서 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery에서 (StringCollection 쿼리)
Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery (StringCollection query, Boolean includeDbContext)
at Microsoft.SqlServer.Management.Smo.NamedSmoObject.RenameImplWorker (String newName)
at Microsoft.SqlServer.Management.Smo.NamedSmoObject. RenameImpl (문자열 newName)

==================================

잠금 요청 시간 초과 기간이 초과되었습니다. @objname 매개 변수가 모호하거나 청구 된 @objtype (OBJECT)이 잘못되었습니다. (.Net SqlClient 데이터 공급자)


서버 이름 : 162.44.25.59 오류 번호 : 1222
심각도 : 16 상태 : 56
절차 : sp_rename 줄 번호 : 282

내 SQL Server 버전은 2008 R2입니다.


SQL Server Management Studio에서 활성 트랜잭션의 세부 정보를 찾으려면 다음 명령을 실행하십시오.

DBCC opentran()

활성 트랜잭션의 세부 정보를 얻은 다음 활성 트랜잭션의 SPID에서 다음 명령을 사용하여 SPID에 대한 세부 정보를 가져옵니다.

exec sp_who2 <SPID>
exec sp_lock <SPID>

예를 들어 SPID가 69이면 다음과 같이 명령을 실행합니다.

exec sp_who2 69
exec sp_lock 69

이제 다음 명령을 사용하여 해당 프로세스를 종료 할 수 있습니다.

KILL 69

이게 도움이 되길 바란다 :)


오래되었지만 지난번에 비슷한 것을 얻었습니다.

ROLLBACK TRAN

또는 시도

COMMIT

모든 준비가 완료된 것이 모든 것을 해제하여 모든 것을 정리하고 다시 시작할 수있었습니다.


이를 방지하려면 모든 BEGIN TRANSACTION에 COMMIT가 있는지 확인하십시오.

다음은 성공이라고 말하지만 커밋되지 않은 트랜잭션은 그대로 둡니다.

BEGIN TRANSACTION
BEGIN TRANSACTION
<SQL_CODE?
COMMIT

커밋되지 않은 트랜잭션으로 쿼리 창을 닫으면 트랜잭션을 커밋하라는 메시지가 표시됩니다. 일반적으로 오류 1222 메시지가 해결됩니다.


옵션 쿼리 실행에서 다음 SQL 동작 설정을 활성화했습니다. ANSI SET IMPLICIT_TRANSACTIONS가 확인되었습니다. 쿼리를 실행할 때 (예 : 테이블 생성, 변경 또는 저장 프로 시저)이를 커밋해야합니다.

COMMIT를 입력하고 실행하십시오. F5

참고 URL : https://stackoverflow.com/questions/8258710/how-to-solve-sql-server-error-1222-ie-unlock-a-sql-server-table

반응형