SQL Server Developer Center > SQL Server Foren > SQL Server Express > Serverseitige Funktion mit .NET CLR
Stellen Sie eine FrageStellen Sie eine Frage
 

BeantwortetServerseitige Funktion mit .NET CLR

  • Mittwoch, 5. August 2009 19:49Uli Waibel TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hallo,
    ich habe mit .NET und C# eine Funktion geschrieben, welche auf dem SQL Server ausgeführt wird. Soweit ist alles kein Problem (Debuggen, Ausführen, alles klappt bestens). Nun möchte ich in dieser Funktion in bestimmten Situationen einen Eintrag in eine Tabelle machen. Leider bricht die Verarbeitung des INSERT Befehls immer mit Fehler ab.

    Gibt es irgendwo ein Beispiel, wie man so was machen kann? Ich bin wirklich für jeden brauchbaren Hinweis dankbar.
    Ich verwende SQL Server 2005 Express und das Management-Studio 2005 sowie Visual Studio 2005 und .NET Framework 2.0

    Grüße

    Uli

Antworten

  • Donnerstag, 6. August 2009 07:26Elmar BoyeMVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hallo Uli,

    Wenn es sich um eine SQL CLR Funktion (SqlFunctionAttribute) handelt,
    so geht das wie bei TRANSACT-SQL Funktionen prinzipiell nicht.
    Funktionen erweitern Abfragen (SELECT) und dort kann man nicht nebenbei Daten verändern.
    Der Hintergrund ist die Transaktionssicherheit, die dann nicht (immer) gewährleistet werden könnte.

    Handelt es sich um eine CLR Stored Procedure, so kannst Du dies über ein SqlCommand
    und die Context Connection durchführen.

    Siehe auch den Hinweiskasten bei Datenzugriff von CLR-Datenbankobjekten aus

    Gruß Elmar

Alle Antworten

  • Donnerstag, 6. August 2009 07:26Elmar BoyeMVPTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     Beantwortet
    Hallo Uli,

    Wenn es sich um eine SQL CLR Funktion (SqlFunctionAttribute) handelt,
    so geht das wie bei TRANSACT-SQL Funktionen prinzipiell nicht.
    Funktionen erweitern Abfragen (SELECT) und dort kann man nicht nebenbei Daten verändern.
    Der Hintergrund ist die Transaktionssicherheit, die dann nicht (immer) gewährleistet werden könnte.

    Handelt es sich um eine CLR Stored Procedure, so kannst Du dies über ein SqlCommand
    und die Context Connection durchführen.

    Siehe auch den Hinweiskasten bei Datenzugriff von CLR-Datenbankobjekten aus

    Gruß Elmar
  • Donnerstag, 6. August 2009 08:16Uli Waibel TeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillenTeilnehmermedaillen
     
    Hallo Elmar,

    danke für die Information. In der Zwischenzeit habe ich das selber herausgefunden (auf der Technet-Seite von Sql-Server habe ich einen entsprechenden Hinweis gefunden). Trotzdem vielen Dank für die Antwort.

    Gruß Uli