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 Microsoft Visual Studio können Sie CLR-Datenbankobjekte (Common Language Runtime) entwickeln und auf einem Testserver bereitstellen. Alternativ können die verwalteten Datenbankobjekte auch mit der Microsoft .NET Framework-Umverteilungsdateien kompiliert werden, anstatt mit Visual Studio. 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. Beachten Sie, dass Visual Studio .NET 2003 nicht für CLR-Integrationsprogrammierung oder Bereitstellung verwendet werden kann. SQL Server enthält die vorinstallierte .NET Framework, und Visual Studio .NET 2003 kann die .NET Framework 2.0-Assemblys nicht verwenden.

Sobald die CLR-Methoden auf dem Testserver getestet und verifiziert wurden, können sie mit einem Bereitstellungsskript auf die Produktionsserver verteilt werden. Das Bereitstellungsskript kann manuell oder mithilfe von SQL Server Management Studio generiert werden (siehe Verfahren weiter unten in diesem Thema).

Die CLR-Integrationsfunktion ist in SQL Server standardmäßig deaktiviert und muss aktiviert werden, um CLR-Assemblys verwenden zu können. Weitere Informationen finden Sie unter Enabling CLR Integration.

Bereitstellen der Assembly auf einem 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 auf dem SQL Server instance aktiviert sein, um Microsoft Visual Studio für Remoteentwicklung, Debugging und Entwicklung verwenden zu können. Weitere Informationen zum Aktivieren des TCP/IP-Protokolls auf dem Server finden Sie unter Konfigurieren von Clientprotokollen.

So stellen Sie eine Assembly mit Visual Studio bereit

  1. Erstellen Sie das Projekt, indem Sie im Menü Erstellen die Option Projektname<>erstellen auswählen.

  2. Lösen Sie alle Erstellungsfehler und -warnungen vor dem Bereitstellen der Assembly auf dem Testserver auf.

  3. Wählen Sie im Menü Erstellen die Option Bereitstellen aus. Die Assembly wird dann in der SQL Server instance und Datenbank registriert, die beim ersten Erstellen des SQL Server-Projekts in Visual Studio angegeben wurde.

So stellen Sie die Assembly mit Transact-SQL bereit

  1. Kompilieren Sie die Assembly mit den in .NET Framework enthaltenen Befehlszeilencompilern aus der Quelldatei.

  2. Für Microsoft Visual C#-Quelldateien:

  3. csc /target:library C:\helloworld.cs

  4. Für Microsoft Visual Basic-Quelldateien:

vbc /target:library C:\helloworld.vb

Mit diesen Befehlen wird der Visual C#- oder Visual Basic-Compiler mithilfe der Option /target gestartet, um das Erstellen einer Bibliotheks-DLL anzugeben.

  1. Lösen Sie alle Erstellungsfehler und -warnungen vor dem Bereitstellen der Assembly auf dem Testserver auf.

  2. Öffnen Sie SQL Server Management Studio auf dem Testserver. Erstellen Sie eine neue Abfrage, die mit einer geeigneten Testdatenbank (z. B. AdventureWorks) verbunden ist.

  3. Erstellen Sie die Assembly auf dem Server, indem Sie der Abfrage die folgende Transact-SQL-Instanz hinzufügen.

CREATE ASSEMBLY HelloWorld from 'c:\helloworld.dll' WITH PERMISSION_SET = SAFE;

  1. Die Prozedur, Funktion, Aggregat, benutzerdefinierter Typ oder Trigger muss dann im instance von SQL Server erstellt werden. Wenn die HelloWorld-Assembly eine Methode mit dem Namen HelloWorld in der Procedures-Klasse enthält, kann der Abfrage die folgende Transact-SQL-Instanz hinzugefügt werden, um eine Prozedur namens hello 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 CLR User-Defined Functions, CLR User-Defined Aggregates, CLR User-Defined Types, CLR Stored Procedures und CLR Trigger.

Bereitstellen der Assembly auf einem Produktionsserver

Sobald die CLR-Datenbankobjekte auf dem Testserver getestet und verifiziert wurden, können sie mit einem Bereitstellungsskript auf die Produktionsserver verteilt werden. Weitere Informationen zum Debuggen verwalteter Datenbankobjekte finden Sie unter Debuggen von CLR-Datenbankobjekten.

Die Bereitstellung von verwalteten Datenbankobjekten ähnelt der 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 Funktion "Skripts generieren" von Management Studio erstellt werden. Das Bereitstellungsskript kann auch manuell erstellt oder mit "Skripts generieren" erzeugt und dann manuell abgeändert werden. Nachdem das Bereitstellungsskript erstellt wurde, kann es auf anderen Instanzen von SQL Server ausgeführt werden, um die verwalteten Datenbankobjekte bereitzustellen.

So generieren Sie ein Bereitstellungsskript mit 'Skript generieren'

  1. Öffnen Sie Management Studio, und stellen Sie eine Verbindung mit dem SQL Server instance her, in dem die zu bereitstellende verwaltete Assembly oder das Datenbankobjekt registriert ist.

  2. Erweitern Sie im Objekt-Explorer die <Strukturen Servername> und Datenbanken. Klicken Sie mit der rechten Maustaste auf die Datenbank, in der das verwaltete Datenbankobjekt registriert ist, wählen Sie Aufgaben und dann Skripts generieren aus. Der Skript-Assistent wird geöffnet.

  3. Wählen Sie im Listenfeld die Datenbank aus, und klicken Sie auf Weiter.

  4. Klicken Sie im Bereich Skriptoptionen auswählen auf Weiter, oder ändern Sie die Optionen, und klicken Sie dann auf Weiter.

  5. Wählen Sie im Bereich Objekttypen auswählen den Typ des bereitzustellenden Datenbankobjekts aus. Klicken Sie auf Weiter.

  6. Für jeden im Bereich Objekttypen auswählen ausgewählten Objekttyp wird ein Bereich Typ> auswählen < angezeigt. In diesem Bereich stehen alle Instanzen des betreffenden Datenbankobjekttyps zur Auswahl, die in der angegebenen Datenbank registriert sind. Wählen Sie mindestens ein Objekt aus, und klicken Sie auf Weiter.

  7. Der Bereich Ausgabeoptionen wird angezeigt, wenn alle gewünschten Datenbankobjekttypen ausgewählt wurden. Wählen Sie Skript für die Datei aus, und geben Sie einen Dateipfad für das Skript an. Klicken Sie auf Weiter. Überprüfen Sie Ihre Auswahl, und klicken Sie auf Fertig stellen. 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 in Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt, 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 das Projekt bereitstellen, führt Visual Studio nach der Bereitstellung des Projekts dieses Skript aus.

Weitere Informationen

Programmierkonzepte für die Common Language Runtime (CLR)-Integration