變更組件

適用於:SQL Server

已在 SQL Server 中註冊的元件,可以使用 ALTER ASSEMBLY 語句從較新版本更新。 若要更新組件,請使用 ALTER ASSEMBLY 陳述式搭配下列語法:

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

ALTER ASSEMBLY 不會中斷目前使用組件正在執行的處理序;處理序會繼續執行未變更的組件。 ALTER ASSEMBLY 無法用於變更 Common Language Runtime (CLR) 函數、彙總函式、預存程序和觸發程序的簽章。 新的公用方法可以加入到組件、私用方法可以用任何方式修改,而且只要簽章或屬性沒有變更,就可以修改公用方法。 包含在原生序列化使用者定義型別 (包括資料成員或基底類別) 中的欄位,不能使用 ALTER ASSEMBLY 加以變更。 所有其他變更亦不受支援。 如需詳細資訊,請參閱 ALTER ASSEMBLY (Transact-SQL)

變更組件的權限集合

組件的權限集合也可以使用 ALTER ASSEMBLY 陳述式進行變更。 下列語句會將 SQLCLRTest 元件的許可權集變更為 EXTERNAL_ACCESS

ALTER ASSEMBLY SQLCLRTest  
WITH PERMISSION_SET = EXTERNAL_ACCESS   

如果元件的許可權集從 SAFE 變更為 EXTERNAL_ACCESSUNSAFE,則必須先建立具有 外部 ACCESS ASSEMBLY 許可權或 UNSAFE ASSEMBLY 許可權的非對稱金鑰和對應登入。 如需詳細資訊,請參閱 建立組件

加入組件的原始程式碼

ALTER ASSEMBLY 語法中的 ADD FILE 子句不存在於 CREATE ASSEMBLY 中。 您可以使用它來加入原始程式碼,或與組件相關聯的任何其他檔案。 這些檔案會從原始位置複製,並儲存在資料庫的系統資料表中。 如此可在您需要重新建立或記載 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)