Delen via


CLR-databaseobjecten implementeren

van toepassing op:SQL Server-

Implementatie is het proces waarmee u een voltooide toepassing of module distribueert die moet worden geïnstalleerd en uitgevoerd op een andere computer. Met Visual Studio kunt u CLR-databaseobjecten (Common Language Runtime) ontwikkelen en deze implementeren op een testserver. De beheerde databaseobjecten kunnen ook worden gecompileerd met de .NET Framework-herdistributiebestanden in plaats van Visual Studio. Zodra de assembly's met de CLR-databaseobjecten zijn gecompileerd, kunnen ze worden geïmplementeerd op een testserver met behulp van Visual Studio of Transact-SQL instructies.

Zodra de CLR-methoden zijn getest en geverifieerd op de testserver, kunnen ze worden gedistribueerd naar productieservers met behulp van een implementatiescript. Het implementatiescript kan handmatig worden gegenereerd of met behulp van SQL Server Management Studio (verderop in dit artikel).

De CLR-integratiefunctie is standaard uitgeschakeld in SQL Server en moet zijn ingeschakeld om CLR-assembly's te kunnen gebruiken. Zie CLR-integratie inschakelenvoor meer informatie.

De assembly implementeren op de testserver

Met Visual Studio kunt u CLR-functies, procedures, triggers, door de gebruiker gedefinieerde typen (UDT's) of door de gebruiker gedefinieerde aggregaties (UDF's) ontwikkelen en deze implementeren op een testserver. Deze beheerde databaseobjecten kunnen ook worden gecompileerd met de opdrachtregelcompilatoren, zoals csc.exe en vbc.exe, die zijn opgenomen in de .NET Framework-herdistributiebestanden. De Integrated Development Environment van Visual Studio is niet vereist voor het ontwikkelen van beheerde databaseobjecten voor SQL Server.

Zorg ervoor dat alle compilerfouten en -waarschuwingen zijn opgelost. De assembly's met de CLR-routines kunnen vervolgens worden geregistreerd in een SQL Server-database met behulp van Visual Studio of Transact-SQL instructies.

Notitie

Het TCP/IP-netwerkprotocol moet zijn ingeschakeld op het SQL Server-exemplaar om Visual Studio te kunnen gebruiken voor externe ontwikkeling, foutopsporing en ontwikkeling. Zie Clientprotocollen configurerenvoor meer informatie over het inschakelen van TCP/IP-protocol op de server.

De assembly implementeren met visual studio

  1. Bouw het project door <projectnaam> te selecteren in het menu Build.

  2. Los alle buildfouten en waarschuwingen op voordat u de assembly implementeert op de testserver.

  3. Selecteer implementeren in het menu Build. De assembly wordt vervolgens geregistreerd in het SQL Server-exemplaar en de database die is opgegeven toen het SQL Server-project voor het eerst werd gemaakt in Visual Studio.

De assembly implementeren met behulp van Transact-SQL

  1. Compileer de assembly vanuit het bronbestand met behulp van de opdrachtregelcompilers die deel uitmaken van .NET Framework.

  2. Voor C#-bronbestanden:

    csc /target:library C:\helloworld.cs

  3. Voor Visual Basic-bronbestanden:

    vbc /target:library C:\helloworld.vb

Met deze opdrachten start u de C# of Visual Basic-compiler met behulp van de optie /target om een bibliotheek-DLL op te geven.

  1. Los alle buildfouten en waarschuwingen op voordat u de assembly implementeert op de testserver.

  2. Open SQL Server Management Studio op de testserver. Maak een nieuwe query die is verbonden met een geschikte testdatabase (zoals AdventureWorks2022).

  3. Maak de assembly op de server door de volgende Transact-SQL toe te voegen aan de query.

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

  4. De procedure, functie, aggregatie, door de gebruiker gedefinieerde type of trigger moet vervolgens worden gemaakt in het exemplaar van SQL Server. Als de HelloWorld-assembly een methode bevat met de naam HelloWorld in de klasse Procedures, kan de volgende Transact-SQL worden toegevoegd aan de query om een procedure te maken met de naam hello in SQL Server.

    CREATE PROCEDURE hello AS
    EXTERNAL NAME HelloWorld.Procedures.HelloWorld;
    

Zie voor meer informatie over het maken van de verschillende typen beheerde databaseobjecten in SQL Server:

De assembly implementeren op productieservers

Zodra de CLR-databaseobjecten zijn getest en geverifieerd op de testserver, kunnen ze worden gedistribueerd naar productieservers. Zie Fouten opsporen in CLR-databaseobjectenvoor meer informatie over het opsporen van fouten in beheerde databaseobjecten.

De implementatie van beheerde databaseobjecten is vergelijkbaar met die van reguliere databaseobjecten (tabellen, Transact-SQL routines, enzovoort). De assembly's met de CLR-databaseobjecten kunnen worden geïmplementeerd op andere servers met behulp van een implementatiescript. Het implementatiescript kan worden gebouwd met behulp van de Scripts genereren functionaliteit van Management Studio. Het implementatiescript kan ook handmatig worden gebouwd of gebouwd met behulp van Scripts genereren en handmatig worden gewijzigd. Zodra het implementatiescript is gebouwd, kan het worden uitgevoerd op andere exemplaren van SQL Server om de beheerde databaseobjecten te implementeren.

Een implementatiescript genereren met behulp van scripts genereren

  1. Open Management Studio en maak verbinding met het SQL Server-exemplaar waar het beheerde assembly- of databaseobject dat moet worden geïmplementeerd, is geregistreerd.

  2. Vouw in de Objectverkennerde <servernaam> en Databases-structuren uit. Klik met de rechtermuisknop op de database waarin het beheerde databaseobject is geregistreerd, selecteer Takenen selecteer vervolgens Scripts genereren. De wizard Script wordt geopend.

  3. Selecteer de database in de keuzelijst en selecteer Volgende.

  4. Selecteer in het deelvenster Scriptopties kiezenVolgendeof wijzig de opties en selecteer vervolgens Volgende.

  5. Kies in het deelvenster Objecttypen kiezen het type databaseobject dat moet worden geïmplementeerd. Selecteer Volgende.

  6. Voor elk objecttype dat is geselecteerd in het deelvenster Objecttypen kiezen, wordt een <type> deelvenster weergegeven. In dit deelvenster kunt u kiezen uit alle exemplaren van dat databaseobjecttype dat is geregistreerd in de opgegeven database. Selecteer een of meer objecten en selecteer Volgende.

  7. Het uitvoeropties deelvenster wordt weergegeven wanneer alle gewenste databaseobjecttypen zijn geselecteerd. Selecteer Script voor het bestand en geef een bestandspad voor het script op. Selecteer Volgende. Controleer uw selecties en selecteer voltooien. Het implementatiescript wordt opgeslagen in het opgegeven bestandspad.

Scripts na implementatie

U kunt een script na de implementatie uitvoeren.

Als u een script na de implementatie wilt toevoegen, voegt u een bestand toe met de naam postdeployscript.sql in de projectmap van Visual Studio. Klik bijvoorbeeld met de rechtermuisknop op uw project in Solution Explorer- en selecteer Bestaand item toevoegen. Voeg het bestand toe in de hoofdmap van het project in plaats van in de map Testscripts.

Wanneer u implementeren selecteert, voert Visual Studio dit script uit na de implementatie van uw project.