次の方法で共有


アセンブリを変更する

適用対象:SQL Server

SQL Server に登録されているアセンブリは、ALTER ASSEMBLY ステートメントを使用して、より新しいバージョンから更新できます。 アセンブリを更新するには、次の構文で ALTER ASSEMBLY ステートメントを使用します。

ALTER ASSEMBLY SQLCLRTest
    FROM 'C:\MyDBApp\SQLCLRTest.dll';

ALTER ASSEMBLY は、アセンブリを使用している現在実行中のプロセスを中断しません。プロセスは変更されていないアセンブリで実行を続けます。 ALTER ASSEMBLY を使用して、共通言語ランタイム (CLR) 関数、集計関数、ストアド プロシージャ、トリガーのシグネチャを変更することはできません。 アセンブリに新しいパブリック メソッドを追加したり、プライベート メソッドを任意の方法で変更したり、シグネチャや属性が変更されない限りパブリック メソッドを変更したりできます。 ネイティブ シリアル化されたユーザー定義型 (データ メンバーや基底クラスを含む) に含まれるフィールドは、ALTER ASSEMBLYを使用して変更することはできません。 その他の変更はいずれもサポートされていません。 詳細については、ALTER ASSEMBLYの を参照してください。

アセンブリのアクセス許可セットを変更する

アセンブリの権限セットは、ALTER ASSEMBLY ステートメントを使用して変更することもできます。 次のステートメントは、SQLCLRTest アセンブリのアクセス許可セットを EXTERNAL_ACCESSに変更します。

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

アセンブリの権限セットを SAFE から EXTERNAL_ACCESS または UNSAFEに変更する場合は、非対称キーと、アセンブリに対する EXTERNAL ACCESS ASSEMBLY 権限または UNSAFE ASSEMBLY 権限を持つ対応するログインを最初に作成する必要があります。 詳細については、「アセンブリ作成する」を参照してください。

アセンブリのソース コードを追加する

ALTER ASSEMBLY 構文の ADD FILE 句は、CREATE ASSEMBLYに存在しません。 ADD FILE 句を使用すると、アセンブリに関連付けられるソース コードやその他のファイルを追加できます。 ファイルは元の場所からコピーされ、データベース内のシステム テーブルに格納されます。 これにより、ユーザー定義型 (UDT) の現在のバージョンを再作成または文書化する必要がある場合は、常にソース コードまたはその他のファイルが手元にあります。

次のステートメントは、Point UDT の Point.cs クラスのソース コードを追加します。 Point.cs ファイルに含まれるテキストをコピーし、PointSourceという名前でデータベースに格納します。

ALTER ASSEMBLY Point
ADD FILE FROM 'C:\Projects\Point\Point.cs' AS PointSource;