openqueryを使用して一時テーブルにデータを設定するストアドプロシージャ(作成していません)があります。問題は、プロシージャ全体を停止するという予期されたエラー(存在しないユーザーのActive Directoryにヒットする)があることです。私が望んでいたのは、エラーをキャッチし、いくつかのデフォルト値を入力して、カーソルを続行できるようにすることです。現在、エラーをキャッチしていますが、procはその時点で停止しています。強制的に続行する方法はありますか?procの一部は次のとおりです。
BEGIN
SET @SQL=N'INSERT INTO #AD_Display_Names (GUID, Display_Name)
SELECT objectGUID, displayName
FROM OPENQUERY(ADSI,''SELECT objectGUID, displayName
FROM ''''LDAP://<GUID=' + CONVERT (VARCHAR (MAX), @GUID) + '>''''
WHERE objectCategory = ''''Person'''' AND objectClass = ''''user'''''')'
BEGIN TRY
EXEC SP_EXECUTESQL @SQL
END TRY
BEGIN CATCH
SET @SQL=N'INSERT INTO #AD_Display_Names (GUID, Display_Name)
VALUES(''00000000-0000-0000-0000-000000000000'', ''Unknown'')'
EXEC SP_EXECUTESQL @SQL
END CATCH
FETCH NEXT FROM [User_Names_Cursor]
INTO @GUID
END