2012-08-20 2 views
0

이 작업을 수행하는 가장 좋은 방법에 대한 조언이 필요합니다.DROP TABLE에서 SAFE CLR 관리 절차 제한을 무시하십시오.

현재 저는 대량의 데이터 파일을 임시 테이블에 대량으로 삽입 한 다음 다양한 텍스트/수학 논리를 통해 모든 행을 실시간 데이터 테이블에 처리하는 MSSQL 2012의 clr 절차를 사용하고 있습니다.

일단 완료되면, 내가 만든 테이블을 제거하고 싶습니다. DROP TABLE xxx는 다음과 같은 오류가 발생하는 곳입니다.

Msg 6522, Level 16, State 1, Procedure SyncAgents, Line 0 
A .NET Framework error occurred during execution of user-defined routine or aggregate "SyncAgents": 
System.Security.HostProtectionException: Attempted to perform an operation that was forbidden by the CLR host. 

The protected resources (only available with full trust) were: All 
The demanded resources were: ExternalThreading 

System.Security.HostProtectionException: 
    at StoredProcedures.SyncAgents() 
. 

는 기본적으로 안전하지 않은 있어야합니다 것을 의미한다. 나는 피하고 싶습니다. 따라서 질문은 :

내가이 작업을 마친 후이 테이블을 떨어 뜨리는 가장 좋은 방법은 무엇입니까? 예정된 작업이어야합니까? 그것을 할 수있는 영리한 방아쇠가 있습니까?

대기열 (tablename/isprocessed 표가있는 간단한 varchar/bit)에서 보이는 예약 된 프로 시저를 작성한 다음 해당 대기열을 기반으로 삭제를 실행하려고합니다.

처음부터 문제가 있다고 생각합니까?

의견을 보내 주시면 감사하겠습니다.

+0

이 임시 테이블은 임시 임시 테이블 (예 : #로 시작)입니까 아니면 일시적인 목적으로 사용중인 테이블입니까? – podiluska

+0

일반 테이블입니다. 대신 #table을 사용해야하나요? 나는 그 일을 보지 않았다. – enko

+0

확실하지 않습니다. (내가 답을 써서 답을 달았습니다.)하지만 시도해 보겠습니다. 삭제할 가능성이 더 큽니다. – podiluska

답변

0

사용자 테이블이 아닌 적절한 임시 테이블 (예 : # 접두어가 붙은 테이블)을 사용하는 경우 필요한 사용 권한이 있습니다.