アセンブリの変更

適用対象: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 (Transact-SQL)」を参照してください。

アセンブリの権限セットの変更

アセンブリの権限セットも、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

参照

CLR 統合アセンブリの管理
アセンブリの作成
アセンブリの削除
ALTER ASSEMBLY (Transact-SQL)