CREATE ASSEMBLY (Transact-SQL)CREATE ASSEMBLY (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Erstellt ein verwaltetes Anwendungsmodul, das Klassenmetadaten und verwalteten Code als Objekt in einer Instanz von SQL ServerSQL Server enthält.Creates a managed application module that contains class metadata and managed code as an object in an instance of SQL ServerSQL Server. Durch Verweisen auf dieses Modul können CLR-Funktionen (Common Language Runtime), gespeicherte Prozeduren, Trigger, benutzerdefinierte Aggregate und benutzerdefinierte Typen in der Datenbank erstellt werden.By referencing this module, common language runtime (CLR) functions, stored procedures, triggers, user-defined aggregates, and user-defined types can be created in the database.

Warnung

CLR verwendet die Codezugriffssicherheit (Code Access Security, CAS) im .NET Framework, die nicht länger als Sicherheitsbegrenzung unterstützt wird.CLR uses Code Access Security (CAS) in the .NET Framework, which is no longer supported as a security boundary. Eine CLR-Assembly, die mit PERMISSION_SET = SAFE erstellt wurde, kann womöglich auf externe Systemressourcen zugreifen, nicht verwalteten Code aufrufen und sysadmin-Privilegien erwerben.A CLR assembly created with PERMISSION_SET = SAFE may be able to access external system resources, call unmanaged code, and acquire sysadmin privileges. Ab SQL Server 2017SQL Server 2017 wird eine sp_configure-Option mit der Bezeichnung clr strict security eingeführt, um die Sicherheit von CLR-Assemblys zu erhöhen.Beginning with SQL Server 2017SQL Server 2017, an sp_configure option called clr strict security is introduced to enhance the security of CLR assemblies. clr strict security ist standardmäßig aktiviert und behandelt SAFE- und EXTERNAL_ACCESS-Assemblys so, als wären Sie als UNSAFE gekennzeichnet.clr strict security is enabled by default, and treats SAFE and EXTERNAL_ACCESS assemblies as if they were marked UNSAFE. Die Option clr strict security kann für die Abwärtskompatibilität deaktiviert werden, es wird jedoch nicht empfohlen.The clr strict security option can be disabled for backward compatibility, but this is not recommended. Microsoft empfiehlt, dass alle Assemblys durch ein Zertifikat oder einen asymmetrischen Schlüssel mit einem entsprechenden Anmeldenamen signiert werden, dem UNSAFE ASSEMBLY-Berechtigung für die Masterdatenbank gewährt wurde.Microsoft recommends that all assemblies be signed by a certificate or asymmetric key with a corresponding login that has been granted UNSAFE ASSEMBLY permission in the master database. Weitere Informationen finden Sie unter CLR Strict Security.For more information, see CLR strict security.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

CREATE ASSEMBLY assembly_name  
[ AUTHORIZATION owner_name ]  
FROM { <client_assembly_specifier> | <assembly_bits> [ ,...n ] }  
[ WITH PERMISSION_SET = { SAFE | EXTERNAL_ACCESS | UNSAFE } ]  
[ ; ]  
<client_assembly_specifier> :: =  
        '[\\computer_name\]share_name\[path\]manifest_file_name'  
  | '[local_path\]manifest_file_name'  

<assembly_bits> :: =  
{ varbinary_literal | varbinary_expression }  

ArgumenteArguments

AssemblyNameassembly_name
Der Name der Assembly.Is the name of the assembly. Der Name muss innerhalb der Datenbank und eine gültige eindeutig Bezeichner.The name must be unique within the database and a valid identifier.

Autorisierung Owner_nameAUTHORIZATION owner_name
Gibt den Namen eines Benutzers oder einer Rolle als Besitzer der Assembly an.Specifies the name of a user or role as owner of the assembly. Owner_name muss der Name einer Rolle, der der aktuelle Benutzer angehört, oder der aktuelle Benutzer muss IMPERSONATE-Berechtigung verfügen, auf Owner_name.owner_name must either be the name of a role of which the current user is a member, or the current user must have IMPERSONATE permission on owner_name. Wird kein Wert angegeben, wird der aktuelle Benutzer zum Besitzer.If not specified, ownership is given to the current user.

<Client_assembly_specifier ><client_assembly_specifier>
Gibt den lokalen Pfad oder den Netzwerkspeicherort an, unter dem die Assembly gespeichert ist, die hochgeladen wird. Außerdem wird damit der Manifestdateiname angegeben, der der Assembly entspricht.Specifies the local path or network location where the assembly that is being uploaded is located, and also the manifest file name that corresponds to the assembly. <Client_assembly_specifier > kann als feste Zeichenfolge oder ausgewerteter Ausdruck in eine Zeichenfolge fester mit Variablen ausgedrückt werden.<client_assembly_specifier> can be expressed as a fixed string or an expression evaluating to a fixed string, with variables. Das Laden von Assemblys mit mehreren Modulen wird von CREATE ASSEMBLY nicht unterstützt.CREATE ASSEMBLY does not support loading multimodule assemblies. SQL ServerSQL Server sucht auch nach abhängigen Assemblys dieser Assembly an demselben Speicherort und lädt sie mit demselben Besitzer wie die Assembly auf Stammebene hoch. also looks for any dependent assemblies of this assembly in the same location and also uploads them with the same owner as the root level assembly. Wenn keine abhängigen Assemblys gefunden werden und diese noch nicht in der aktuellen Datenbank geladen sind, wird für CREATE ASSEMBLY ein Fehler gemeldet.If these dependent assemblies are not found and they are not already loaded in the current database, CREATE ASSEMBLY fails. Wenn die abhängigen Assemblys bereits in der aktuellen Datenbank geladen sind, muss der Besitzer dieser Assemblys mit dem Besitzer der neu erstellten Assembly identisch sein.If the dependent assemblies are already loaded in the current database, the owner of those assemblies must be the same as the owner of the newly created assembly.

<Client_assembly_specifier > kann nicht angegeben werden, wenn der angemeldete Benutzer Identität angenommen hat.<client_assembly_specifier> cannot be specified if the logged in user is being impersonated.

<Assembly_bits ><assembly_bits>
Die Liste der Binärwerte, aus denen die Assembly und die abhängigen Assemblys bestehen.Is the list of binary values that make up the assembly and its dependent assemblies. Der erste Wert in der Liste wird als Assembly auf Stammebene betrachtet.The first value in the list is considered the root-level assembly. Die Werte, die den abhängigen Assemblys entsprechen, können in einer beliebigen Reihenfolge bereitgestellt werden.The values corresponding to the dependent assemblies can be supplied in any order. Werte, die nicht Abhängigkeiten der Stammassembly entsprechen, werden ignoriert.Any values that do not correspond to dependencies of the root assembly are ignored.

Hinweis

Diese Option ist in einer enthaltenen Datenbank nicht verfügbar.This option is not available in a contained database.

varbinary_literalvarbinary_literal
Ist eine Varbinary literal.Is a varbinary literal.

varbinary_expressionvarbinary_expression
Ist ein Ausdruck vom Typ Varbinary.Is an expression of type varbinary.

PERMISSION_SET { SICHERE | EXTERNAL_ACCESS | UNSICHERE}PERMISSION_SET { SAFE | EXTERNAL_ACCESS | UNSAFE }

Wichtig

Die PERMISSION_SET Option hat Auswirkungen auf die clr strict security Option in der Warnung öffnende beschrieben.The PERMISSION_SET option is affected by the clr strict security option, described in the opening warning. Wenn clr strict security ist aktiviert, werden alle Assemblys als behandelt UNSAFE.When clr strict security is enabled, all assemblies are treated as UNSAFE.

Gibt Codezugriffsberechtigungen an, die der Assembly erteilt werden, wenn SQL ServerSQL Server darauf zugreift.Specifies a set of code access permissions that are granted to the assembly when it is accessed by SQL ServerSQL Server. Wird kein Wert angegeben, wird SAFE als Standardwert verwendet.If not specified, SAFE is applied as the default.

Es wird empfohlen, SAFE zu verwenden.We recommend using SAFE. SAFE ist der restriktivste Berechtigungssatz.SAFE is the most restrictive permission set. Code, der von einer Assembly mit SAFE-Berechtigungen ausgeführt wird, hat keinen Zugriff auf externe Systemressourcen wie z. B. Dateien, das Netzwerk, Umgebungsvariablen oder die Registrierung.Code executed by an assembly with SAFE permissions cannot access external system resources such as files, the network, environment variables, or the registry.

EXTERNAL_ACCESS ermöglicht Assemblys den Zugriff auf bestimmte externe Systemressourcen wie z. B. Dateien, Netzwerke, Umgebungsvariablen und die Registrierung.EXTERNAL_ACCESS enables assemblies to access certain external system resources such as files, networks, environmental variables, and the registry.

Hinweis

Diese Option ist in einer enthaltenen Datenbank nicht verfügbar.This option is not available in a contained database.

UNSAFE ermöglicht Assemblys den uneingeschränkten Zugriff auf Ressourcen innerhalb und außerhalb einer Instanz von SQL ServerSQL Server.UNSAFE enables assemblies unrestricted access to resources, both within and outside an instance of SQL ServerSQL Server. Code, der innerhalb einer UNSAFE-Assembly ausgeführt wird, kann nicht verwalteten Code aufrufen.Code running from within an UNSAFE assembly can call unmanaged code.

Hinweis

Diese Option ist in einer enthaltenen Datenbank nicht verfügbar.This option is not available in a contained database.

Wichtig

SAFE ist die empfohlene Berechtigungseinstellung für Assemblys, die Berechnungs- und Datenverwaltungstasks ausführen, ohne auf Ressourcen außerhalb einer Instanz von SQL ServerSQL Server zuzugreifen.SAFE is the recommended permission setting for assemblies that perform computation and data management tasks without accessing resources outside an instance of SQL ServerSQL Server.

Wir empfehlen die Verwendung von EXTERNAL_ACCESS für Assemblys, die auf Ressourcen außerhalb einer Instanz von SQL ServerSQL Server zugreifen.We recommend using EXTERNAL_ACCESS for assemblies that access resources outside of an instance of SQL ServerSQL Server. EXTERNAL_ACCESS-Assemblys beinhalten die Zuverlässigkeit und Skalierbarkeit von SAFE-Assemblys, aber aus Sicht der Sicherheit sind sie mit UNSAFE-Assemblys vergleichbar.EXTERNAL_ACCESS assemblies include the reliability and scalability protections of SAFE assemblies, but from a security perspective are similar to UNSAFE assemblies. Code in EXTERNAL_ACCESS-Assemblys wird nämlich standardmäßig unter dem SQL ServerSQL Server-Dienstkonto ausgeführt, und der Code greift auf externe Ressourcen unter diesem Konto zu, außer der Code nimmt explizit die Identität des Aufrufers an.This is because code in EXTERNAL_ACCESS assemblies runs by default under the SQL ServerSQL Server service account and accesses external resources under that account, unless the code explicitly impersonates the caller. Deshalb sollte die Berechtigung zum Erstellen von EXTERNAL_ACCESS-Assemblys nur vertrauenswürdigen Anmeldenamen erteilt werden, die Code unter dem SQL ServerSQL Server-Dienstkonto ausführen.Therefore, permission to create EXTERNAL_ACCESS assemblies should be granted only to logins that are trusted to run code under the SQL ServerSQL Server service account. Weitere Informationen zum Identitätswechsel finden Sie unter CLR Integration Security.For more information about impersonation, see CLR Integration Security.

Wenn Sie UNSAFE angeben, kann der Code in der Assembly jegliche Vorgänge im SQL ServerSQL Server-Prozessraum ausführen, die die Zuverlässigkeit von SQL ServerSQL Server gefährden können.Specifying UNSAFE enables the code in the assembly complete freedom to perform operations in the SQL ServerSQL Server process space that can potentially compromise the robustness of SQL ServerSQL Server. UNSAFE-Assemblys können außerdem potenziell das Sicherheitssystem von SQL ServerSQL Server oder der CLR unterlaufen.UNSAFE assemblies can also potentially subvert the security system of either SQL ServerSQL Server or the common language runtime. UNSAFE-Berechtigungen sollten nur sehr vertrauenswürdigen Assemblys erteilt werden.UNSAFE permissions should be granted only to highly trusted assemblies. Nur Mitglieder der Sysadmin festen Serverrolle "" erstellen und Ändern von UNSAFE-Assemblys kann.Only members of the sysadmin fixed server role can create and alter UNSAFE assemblies.

Weitere Informationen zu assemblyberechtigungssätzen finden Sie unter Entwerfen von Assemblys.For more information about assembly permission sets, see Designing Assemblies.

HinweiseRemarks

CREATE ASSEMBLY lädt eine Assembly hoch, die zuvor als DLL-Datei von verwaltetem Code zum Verwenden in einer Instanz von SQL Server kompiliert wurde.CREATE ASSEMBLY uploads an assembly that was previously compiled as a .dll file from managed code for use inside an instance of SQL Server.

Falls die Option PERMISSION_SET aktiviert ist, wir sie in den Anweisungen CREATE ASSEMBLY und ALTER ASSEMBLY zur Laufzeit ignoriert, jedoch werden die PERMISSION_SET-Optionen in den Metadaten beibehalten.When enabled, the PERMISSION_SET option in the CREATE ASSEMBLY and ALTER ASSEMBLY statements is ignored at run-time, but the PERMISSION_SET options are preserved in metadata. Das Ignorieren dieser Option vermindert die Trennung vorhandener Codeanweisungen.Ignoring the option, minimizes breaking existing code statements.

In SQL ServerSQL Server ist es nicht zulässig, verschiedene Versionen einer Assembly mit demselben Namen, derselben Kultur und demselben öffentlichen Schlüssel zu registrieren. SQL ServerSQL Server does not allow registering different versions of an assembly with the same name, culture and public key.

Beim Versuch, auf die Assembly im angegebenen <Client_assembly_specifier >, SQL ServerSQL Server verwendet den Sicherheitskontext des aktuellen Windows-Anmeldenamens.When attempting to access the assembly specified in <client_assembly_specifier>, SQL ServerSQL Server impersonates the security context of the current Windows login. Wenn <Client_assembly_specifier > Gibt an einem Netzwerkspeicherort (UNC-Pfad), der Identitätswechsel des aktuellen Anmeldenamens wird nicht übertragen am Netzwerkort aufgrund von delegierungsbeschränkungen.If <client_assembly_specifier> specifies a network location (UNC path), the impersonation of the current login is not carried forward to the network location because of delegation limitations. In diesem Fall erfolgt der Zugriff mithilfe des Sicherheitskontexts des SQL ServerSQL Server-Dienstkontos.In this case, access is made using the security context of the SQL ServerSQL Server service account. Weitere Informationen finden Sie unter Anmeldeinformationen ( Datenbankmodul ).For more information, see Credentials (Database Engine).

Neben der stammassembly gemäß Assembly_name, SQL ServerSQL Server versucht, alle Assemblys hochzuladen, die von der stammassembly Upload referenziert werden.Besides the root assembly specified by assembly_name, SQL ServerSQL Server tries to upload any assemblies that are referenced by the root assembly being uploaded. Falls eine Assembly, auf die verwiesen wird, aufgrund einer früheren CREATE ASSEMBLY-Anweisung bereits in die Datenbank hochgeladen wurde, wird diese Assembly nicht hochgeladen, ist aber für die Stammassembly verfügbar.If a referenced assembly is already uploaded to the database because of an earlier CREATE ASSEMBLY statement, this assembly is not uploaded but is available to the root assembly. Falls eine abhängige Assembly nicht zuvor hochgeladen wurde, aber SQL ServerSQL Server die Manifestdatei nicht im Quellverzeichnis findet, gibt CREATE ASSEMBLY einen Fehler zurück.If a dependent assembly was not previously uploaded, but SQL ServerSQL Server cannot locate its manifest file in the source directory, CREATE ASSEMBLY returns an error.

Wenn abhängige Assemblys, auf die von der Stammassembly verwiesen wird, nicht bereits in der Datenbank vorhanden sind und implizit zusammen mit der Stammassembly geladen werden, haben sie die gleichen Berechtigungen wie die Assembly auf Stammebene.If any dependent assemblies referenced by the root assembly are not already in the database and are implicitly loaded together with the root assembly, they have the same permission set as the root level assembly. Wenn die abhängigen Assemblys mit einem anderen Berechtigungssatz als die Assembly auf Stammebene erstellt werden müssen, müssen sie vor der Assembly auf Stammebene explizit mit dem entsprechenden Berechtigungssatz hochgeladen werden.If the dependent assemblies must be created by using a different permission set than the root-level assembly, they must be uploaded explicitly before the root level assembly with the appropriate permission set.

AssemblyüberprüfungAssembly Validation

SQL ServerSQL Server überprüft die Binärdaten der Assemblys, die mithilfe der CREATE ASSEMBLY-Anweisung hochgeladen wurden, um folgende Bedingungen sicherzustellen: performs checks on the assembly binaries uploaded by the CREATE ASSEMBLY statement to guarantee the following:

  • Die Assemblybinärdatei ist wohlgeformt und enthält gültige Metadaten und Codesegmente, und die Codesegmente weisen gültige MSIL-Anweisungen (Microsoft Intermediate Language) auf.The assembly binary is well formed with valid metadata and code segments, and the code segments have valid Microsoft Intermediate language (MSIL) instructions.

  • Die Systemassemblys, auf die verwiesen wird, entsprechen einer der folgenden unterstützten Assemblys in SQL ServerSQL Server: Microsoft.Visualbasic.dll, Mscorlib.dll, System.Data.dll, System.dll, System.Xml.dll, Microsoft.Visualc.dll, Custommarshallers.dll, System.Security.dll, System.Web.Services.dll, System.Data.SqlXml.dll, System.Core.dll und System.Xml.Linq.dll.The set of system assemblies it references is one of the following supported assemblies in SQL ServerSQL Server: Microsoft.Visualbasic.dll, Mscorlib.dll, System.Data.dll, System.dll, System.Xml.dll, Microsoft.Visualc.dll, Custommarshallers.dll, System.Security.dll, System.Web.Services.dll, System.Data.SqlXml.dll, System.Core.dll, and System.Xml.Linq.dll. Auf andere Systemassemblys kann verwiesen werden, aber sie müssen explizit in der Datenbank registriert sein.Other system assemblies can be referenced, but they must be explicitly registered in the database.

  • Für Assemblys, die mit den SAFE- oder EXTERNAL ACCESS-Berechtigungssätzen erstellt werden:For assemblies created by using SAFE or EXTERNAL ACCESS permission sets:

    • Der Assemblycode sollte typsicher sein.The assembly code should be type-safe. Die Typsicherheit wird durch Ausführen der CLR-Überprüfung (Common Language Runtime) für die Assembly erreicht.Type safety is established by running the common language runtime verifier against the assembly.

    • Die Assembly sollte keine statischen Datenelemente in den Klassen enthalten, außer sie sind als schreibgeschützt gekennzeichnet.The assembly should not contain any static data members in its classes unless they are marked as read-only.

    • Die Klassen in der Assembly dürfen keine Finalizer-Methoden enthalten.The classes in the assembly cannot contain finalizer methods.

    • Die Klassen oder Methoden der Assembly sollten nur mit zulässigen Codeattributen versehen werden.The classes or methods of the assembly should be annotated only with allowed code attributes. Weitere Informationen finden Sie unter benutzerdefinierte Attribute für CLR-Routinen.For more information, see Custom Attributes for CLR Routines.

    Neben den vorherigen Überprüfungen, die zusammen mit CREATE ASSEMBLY ausgeführt werden, werden zur Ausführungszeit des Codes in der Assembly zusätzliche Überprüfungen vorgenommen:Besides the previous checks that are performed when CREATE ASSEMBLY executes, there are additional checks that are performed at execution time of the code in the assembly:

  • Beim Aufrufen bestimmter MicrosoftMicrosoft .NET Framework.NET Framework APIs, die eine bestimmte Codezugriffsberechtigung erfordern möglicherweise fehl, wenn diese Berechtigung nicht in der Berechtigungssatz der Assembly enthalten ist.Calling certain MicrosoftMicrosoft .NET Framework.NET Framework APIs that require a specific Code Access Permission may fail if the permission set of the assembly does not include that permission.

  • Für SAFE- und EXTERNAL_ACCESS-Assemblys wird für jeden Versuch, .NET Framework.NET Framework-APIs aufzurufen, die mit bestimmten HostProtectionAttributes versehen sind, ein Fehler gemeldet.For SAFE and EXTERNAL_ACCESS assemblies, any attempt to call .NET Framework.NET Framework APIs that are annotated with certain HostProtectionAttributes will fail.

    Weitere Informationen finden Sie unter Entwerfen von Assemblys.For more information, see Designing Assemblies.

BerechtigungenPermissions

Erfordert die CREATE ASSEMBLY-Berechtigung.Requires CREATE ASSEMBLY permission.

Falls PERMISSION_SET = EXTERNAL_ACCESS angegeben wird, erfordertEXTERNAL ACCESS ASSEMBLY Berechtigung auf dem Server.If PERMISSION_SET = EXTERNAL_ACCESS is specified, requiresEXTERNAL ACCESS ASSEMBLY permission on the server. Falls PERMISSION_SET = UNSAFE angegeben wird, erfordert UNSAFE ASSEMBLY Berechtigung auf dem Server.If PERMISSION_SET = UNSAFE is specified, requires UNSAFE ASSEMBLY permission on the server.

Der Benutzer muss der Besitzer von Assemblys sein, auf die von der Assembly verwiesen wird, die hochgeladen werden soll, falls die Assemblys bereits in der Datenbank vorhanden sind.User must be the owner of any assemblies that are referenced by the assembly that are to be uploaded if the assemblies already exist in the database. Zum Hochladen einer Assemblys mit einem Dateipfad der aktuelle Benutzer muss ein Windows-authentifizierten Anmeldung oder ein Mitglied der Sysadmin festen Serverrolle "".To upload an assembly by using a file path, the current user must be a Windows authenticated login or a member of the sysadmin fixed server role. Der Windows-Anmeldename des Benutzers, der CREATE ASSEMBLY ausführt, benötigt die Leseberechtigung für die Freigabe und für die Dateien, die in die Anweisung geladen werden.The Windows login of the user that executes CREATE ASSEMBLY must have read permission on the share and the files being loaded in the statement.

Berechtigungen mit strikte Sicherheit der CLRPermissions with CLR strict security

Die folgenden Berechtigungen werden zum Erstellen einer CLR-Assembly benötigt, wenn CLR strict security aktiviert ist:The following permissions required to create a CLR assembly when CLR strict security is enabled:

  • Der Benutzer muss über die CREATE ASSEMBLY-Berechtigung verfügen.The user must have the CREATE ASSEMBLY permission
  • Eine der folgenden Bedingungen muss ebenfalls erfüllt sein:And one of the following conditions must also be true:

    • Die Assembly ist mit einem Zertifikat oder asymmetrischen Schlüssel signiert, der über einen entsprechenden Anmeldenamen mit der UNSAFE ASSEMBLY-Berechtigung auf dem Server verfügt.The assembly is signed with a certificate or asymmetric key that has a corresponding login with the UNSAFE ASSEMBLY permission on the server. Es wird empfohlen, die Assembly zu signieren.Signing the assembly is recommended.
    • Die TRUSTWORTHY-Eigenschaft der Datenbank ist auf ON festgelegt, und der Besitzer der Datenbank ist ein Anmeldename, der über UNSAFE ASSEMBLY-Berechtigungen auf dem Server verfügt.The database has the TRUSTWORTHY property set to ON, and the database is owned by a login that has the UNSAFE ASSEMBLY permission on the server. Diese Option wird nicht empfohlen.This option is not recommended.

    Weitere Informationen zu assemblyberechtigungssätzen finden Sie unter Entwerfen von Assemblys.For more information about assembly permission sets, see Designing Assemblies.

BeispieleExamples

Beispiel A: Erstellen einer Assembly aus einer dllExample A: Creating an assembly from a dll

Gilt für: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Im folgenden Beispiel wird davon ausgegangen, dass die SQL Server-DatenbankmodulSQL Server Database Engine-Beispiele im Standardspeicherort des lokalen Computers gespeichert sind und dass die Beispielanwendung HelloWorld.csproj kompiliert ist.The following example assumes that the SQL Server-DatenbankmodulSQL Server Database Engine samples are installed in the default location of the local computer and the HelloWorld.csproj sample application is compiled. Weitere Informationen finden Sie unter Hello World-Beispiel.For more information, see Hello World Sample.

CREATE ASSEMBLY HelloWorld   
FROM <system_drive>:\Program Files\Microsoft SQL Server\100\Samples\HelloWorld\CS\HelloWorld\bin\debug\HelloWorld.dll  
WITH PERMISSION_SET = SAFE;  

Beispiel B: Erstellen einer Assembly aus assemblyteilenExample B: Creating an assembly from assembly bits

Gilt für: SQL Server 2008SQL Server 2008 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Ersetzen Sie die Beispiel-Bits (die nicht abgeschlossen oder gültig sind) durch Ihre Assemblyteile.Replace the sample bits (which are not complete or valid) with your assembly bits.

CREATE ASSEMBLY HelloWorld  
    FROM 0x4D5A900000000000  
WITH PERMISSION_SET = SAFE;  

Siehe auchSee Also

ALTER ASSEMBLY ( Transact-SQL ) ALTER ASSEMBLY (Transact-SQL)
DROP ASSEMBLY ( Transact-SQL ) DROP ASSEMBLY (Transact-SQL)
CREATE FUNCTION (Transact-SQL) CREATE FUNCTION (Transact-SQL)
CREATE PROCEDURE (Transact-SQL) CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER (Transact-SQL) CREATE TRIGGER (Transact-SQL)
CREATE TYPE (Transact-SQL) CREATE TYPE (Transact-SQL)
Erstellen Sie Aggregat ( Transact-SQL ) CREATE AGGREGATE (Transact-SQL)
EVENTDATA (Transact-SQL) EVENTDATA (Transact-SQL)
Verwendungsszenarien und Beispiele für Common Language Runtime ( CLR ) IntegrationUsage Scenarios and Examples for Common Language Runtime (CLR) Integration