改變組裝件

已在 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。 您可以使用它來新增原始程式碼或任何其他與元件相關聯的檔案。 檔案會從其原始位置複製,並儲存在資料庫中的系統數據表中。 這可確保您必須重新建立或記載目前 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)