SQL CLR wird nicht ausgeführt

Ich verstehe, dass das Erwarten den verbleibenden Teil des ausführenden Codes vervollständigt, wenn sie vom Warten zurückkehren. Ich versuche, dies in einem SQL-CLR zum Laufen zu bringen, und dies funktioniert nicht, da sowohl der erwartete Prozess als auch die Codes darunter nicht ausgeführt werden. Bei der Debug-Methode kehrt das Steuerelement erst zurück, nachdem die Wartezeile ausgeführt wurde.

Wie kann ich diese Arbeit machen, da die Voraussetzung ist, dass clr ausgeführt wird, ohne den Hauptthread zu blockieren, damit andere Arbeiten in der Datenbank gut fortgesetzt werden können. Ich brauche das wirklich, um zu arbeiten und bin jetzt seit 2 Tagen dabei.

NB Dies funktioniert gut, wenn die Methode synchron ist. Und die gespeicherte Prozessgruppe ist in SQL Server als unsicher registriert. Ich benutze MSSQL 2012 und Visual Studio 2015.

public partial class StoredProcedures
{
   [Microsoft.SqlServer.Server.SqlProcedure]
   public static async void sp_push_stock_update(SqlString transactionPrimaryKey, SqlString transactionType)
   {

       using (SqlConnection conn = new SqlConnection("context connection=true"))
       {

           StockUpdateClient.stock_fetcher _stockFetcher = new StockUpdateClient.stock_fetcher(conn);

           List<String> skuList = await new 
           System.Threading.Tasks.Task<List<string>>(()=> 
           _stockFetcher.getItems(transactionPrimaryKey, transactionType));

           //Code does not get here
           performLogging(skuList):


        }

    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage