Bereitstellen von CLR-Datenbankobjekten
Gilt für:SQL Server
Die Verteilung einer fertigen Anwendung oder eines Moduls zur Installation und Ausführung auf anderen Computern wird als Bereitstellung bezeichnet. Mit Visual Studio können Sie ClR-Datenbankobjekte (Common Language Runtime) entwickeln und auf einem Testserver bereitstellen. Alternativ können die verwalteten Datenbankobjekte auch mit den .NET Framework-Umverteilungsdateien anstelle von Visual Studio kompiliert werden. Nach der Kompilierung können die Assemblys, die die CLR-Datenbankobjekte enthalten, mithilfe von Visual Studio- oder Transact-SQL-Anweisungen auf einem Testserver bereitgestellt werden.
Sobald die CLR-Methoden auf dem Testserver getestet und überprüft wurden, können sie mithilfe eines Bereitstellungsskripts an Produktionsserver verteilt werden. Das Bereitstellungsskript kann manuell oder mithilfe von SQL Server Management Studio generiert werden (weiter unten in diesem Artikel behandelt).
Das CLR-Integrationsfeature ist in SQL Server standardmäßig deaktiviert und muss aktiviert sein, um CLR-Assemblys verwenden zu können. Weitere Informationen finden Sie unter Aktivieren der CLR-Integration.
Bereitstellen der Assembly auf dem Testserver
Mithilfe von Visual Studio können Sie CLR-Funktionen, -Prozeduren, -Trigger, benutzerdefinierte Typen (UDTs) und benutzerdefinierte Aggregate entwickeln und diese auf einem Testserver bereitstellen. Diese verwalteten Datenbankobjekte können auch mit den Befehlszeilencompilern, z. csc.exe und vbc.exe, die in den Redistributionsdateien von .NET Framework enthalten sind, kompiliert werden. Die integrierte Entwicklungsumgebung von Visual Studio ist nicht erforderlich, um verwaltete Datenbankobjekte für SQL Server zu entwickeln.
Stellen Sie sicher, dass alle Compilerfehler und -warnungen aufgelöst werden. Die Assemblys, die die CLR-Routinen enthalten, können dann mithilfe von Visual Studio- oder Transact-SQL-Anweisungen in einer SQL Server-Datenbank registriert werden.
Hinweis
Das TCP/IP-Netzwerkprotokoll muss in der SQL Server-Instanz aktiviert sein, um Visual Studio für die Remoteentwicklung, das Debuggen und die Entwicklung zu verwenden. Weitere Informationen zum Aktivieren des TCP/IP-Protokolls auf dem Server finden Sie unter Konfigurieren von Clientprotokollen.
Bereitstellen der Assembly mit Visual Studio
Erstellen Sie das Projekt, indem Sie Projektnamen <> im Menü Erstellen auswählen.
Lösen Sie alle Erstellungsfehler und -warnungen vor dem Bereitstellen der Assembly auf dem Testserver auf.
Wählen Sie im Menü "Erstellen" die Option "Bereitstellen" aus. Die Assembly wird dann in der SQL Server-Instanz und -Datenbank registriert, die beim ersten Erstellen des SQL Server-Projekts in Visual Studio angegeben wurde.
Bereitstellen der Assembly mithilfe von Transact-SQL
Kompilieren Sie die Assembly mit den in .NET Framework enthaltenen Befehlszeilencompilern aus der Quelldatei.
Für C#-Quelldateien:
csc /target:library C:\helloworld.cs
Für Visual Basic-Quelldateien:
vbc /target:library C:\helloworld.vb
Mit diesen Befehlen wird der C#- oder Visual Basic-Compiler mithilfe der option /target
gestartet, um das Erstellen einer Bibliotheks-DLL anzugeben.
Lösen Sie alle Erstellungsfehler und -warnungen vor dem Bereitstellen der Assembly auf dem Testserver auf.
Öffnen Sie SQL Server Management Studio auf dem Testserver. Erstellen Sie eine neue Abfrage, die mit einer geeigneten Testdatenbank verbunden ist (z. B.
AdventureWorks2022
).Erstellen Sie die Assembly auf dem Server, indem Sie der Abfrage die folgende Transact-SQL-Anweisung hinzufügen.
CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;
Die Prozedur, Funktion, Aggregat, benutzerdefinierter Typ oder Trigger muss dann in der SQL Server-Instanz erstellt werden. Wenn die
HelloWorld
assembly eine Methode namensHelloWorld
in derProcedures
Klasse enthält, kann der Abfrage die folgende Transact-SQL hinzugefügt werden, um eine Prozedur namenshello
in SQL Server zu erstellen.CREATE PROCEDURE hello AS EXTERNAL NAME HelloWorld.Procedures.HelloWorld;
Weitere Informationen zum Erstellen der verschiedenen Typen von verwalteten Datenbankobjekten in SQL Server finden Sie unter:
- benutzerdefinierte CLR-Funktionen
- benutzerdefinierte CLR-Aggregate
- benutzerdefinierte CLR-Typen
- gespeicherte CLR-Prozeduren
- CLR-Trigger
Bereitstellen der Assembly auf Produktionsservern
Sobald die CLR-Datenbankobjekte auf dem Testserver getestet und überprüft wurden, können sie an Produktionsserver verteilt werden. Weitere Informationen zum Debuggen verwalteter Datenbankobjekte finden Sie unter Debuggen von CLR-Datenbankobjekten.
Die Bereitstellung von verwalteten Datenbankobjekten ähnelt der bereitstellung von regulären Datenbankobjekten (Tabellen, Transact-SQL-Routinen usw.). Die Assemblys, in denen die CLR-Datenbankobjekte enthalten sind, können mit einem Bereitstellungsskript auf anderen Servern bereitgestellt werden. Das Bereitstellungsskript kann mithilfe der Generieren von Skripts Funktionalität von Management Studio erstellt werden. Das Bereitstellungsskript kann auch manuell erstellt oder mithilfe von Generieren von Skripts und manuell geändert werden. Nachdem das Bereitstellungsskript erstellt wurde, kann es auf anderen Instanzen von SQL Server ausgeführt werden, um die verwalteten Datenbankobjekte bereitzustellen.
Generieren eines Bereitstellungsskripts mithilfe von Generieren von Skripts
Öffnen Sie Management Studio, und stellen Sie eine Verbindung mit der SQL Server-Instanz her, in der die verwaltete Assembly oder das datenbankobjekt registriert ist.
Erweitern Sie im Objekt-Explorer den Servernamen< und >Datenbankstrukturen. Klicken Sie mit der rechten Maustaste auf die Datenbank, in der das verwaltete Datenbankobjekt registriert ist, wählen Sie "Aufgaben" aus, und wählen Sie dann "Skripts generieren" aus. Der Skript-Assistent wird geöffnet.
Wählen Sie die Datenbank aus dem Listenfeld aus, und wählen Sie Weiteraus.
Wählen Sie im Bereich Skriptoptionen Bereich Weiteraus, oder ändern Sie die Optionen, und wählen Sie dann Nächstenaus.
Wählen Sie im Bereich "Objekttypen auswählen" den Typ des datenbankobjekts aus, das bereitgestellt werden soll. Wählen Sie Weiter aus.
Für jeden objekttyp, der im Bereich "Objekttypen auswählen" ausgewählt ist, wird ein > auswählen" angezeigt. In diesem Bereich stehen alle Instanzen des betreffenden Datenbankobjekttyps zur Auswahl, die in der angegebenen Datenbank registriert sind. Wählen Sie ein oder mehrere Objekte aus, und wählen Sie Nextaus.
Der Ausgabeoptionen Bereich wird angezeigt, wenn alle gewünschten Datenbankobjekttypen ausgewählt sind. Wählen Sie skript to file aus, und geben Sie einen Dateipfad für das Skript an. Wählen Sie Weiter aus. Überprüfen Sie Ihre Auswahl, und wählen Sie Endeaus. Das Bereitstellungsskript wird im angegebenen Dateipfad gespeichert.
Skripts nach der Bereitstellung
Sie können ein Skript nach der Bereitstellung ausführen.
Fügen Sie eine Datei mit dem Namen postdeployscript.sql dem Visual Studio-Projektverzeichnis hinzu, um ein nach der Bereitstellung auszuführendes Skript hinzuzufügen. Klicken Sie beispielsweise mit der rechten Maustaste auf Ihr Projekt in Projektmappen-Explorer, und wählen Sie "Vorhandenes Element hinzufügen" aus. Fügen Sie die Datei in den Stammordner des Projekts und nicht in den Ordner Testskripts ein.
Wenn Sie die Bereitstellung auswählen, führt Visual Studio dieses Skript nach der Bereitstellung Ihres Projekts aus.