2016-02-29 61 views

回答

3

你需要一個這樣的小腳本:

DECLARE @sql NVARCHAR(MAX) = N''; 
DECLARE @assembly_name NVARCHAR(MAX)='assembly' 
SELECT @sql += ' 
DROP ' + 
CASE 
WHEN o.type='PC' THEN 'PROCEDURE ' 
ELSE 'FUNCTION ' 
END 
+ QUOTENAME(o.Name) 
+ ';' 
FROM Sys.Assemblies asm 
INNER JOIN SYS.ASSEMBLY_MODULES m ON asm.assembly_id=m.assembly_id 
INNER JOIN SYS.OBJECTS o ON m.object_id = o.object_id 
WHERE [email protected]_name 
SET @[email protected]+' 
DROP ASSEMBLY '+QUOTENAME(@assembly_name) 

PRINT @sql; 
EXEC sp_executesql @sql; 

但是,刪除所有組件的依賴對象並不安全,所以要小心哪些將被刪除。

+0

它爲我工作得很好!我沒有考慮存儲過程,但你做到了。非常感謝! – dogrishin

+0

謝謝,你可能想補充一點。 WHEN o.type ='AF'THEN'AGGREGATE' – Rm558