SQL Server (2008 R2)에서 어셈블리를 삭제하고 다시 만들지 않고 CLR 함수 (또는 프로 시저) 어셈블리 dll을 어떻게 업데이트 할 수 있습니까?
어셈블리를 업데이트하면 (예 : 새 기능 추가) SQL Server는 어셈블리를 삭제할 때까지 업데이트 된 dll을 적용하지 않습니다.
DROP ASSEMBLY CLRFunctions
Msg 6590, Level 16, State 1, Line 1
DROP ASSEMBLY failed because 'CLRFunctions' is referenced by object 'NormalizeString'.
그러나 어셈블리를 삭제하기 전에 먼저 참조하는 모든 함수 를 삭제해야 합니다.
DROP FUNCTION NormalizeString
DROP FUNCTION RemoveDiacritics
DROP FUNCTION RemoveCombiningDiacritics
DROP FUNCTION CombineLigatures
....
DROP FUNCTION PseudolocalizeArabic
그런 다음 어셈블리를 삭제할 수 있습니다.
DROP ASSEMBLY CLRFunctions
이제 어셈블리 를 " 생성 "해야합니다.
CREATE ASSEMBLY CLRFunctions FROM 'c:\foos\CLRFunctions.dll';
그리고 지금은 모든 UDF의 그 선언 사냥해야 하고 내가 그들을 삭제하기 전에 등록합니다.
차라리 어셈블리를 업데이트 하고 SQL Server에서 사용을 시작하도록합니다.
업데이트 : 무작위로 DBCC FREEPROCCACHE
"재 컴파일"을 강제 로 시도 했지만 SQL Server는 여전히 이전 코드를 사용합니다.
업데이트 : 어셈블리 dll을 삭제했지만 CLRFunctions.dll
SQL Server는 여전히 코드를 실행할 수 있습니다 (코드는 불가능해야 함).