2010-03-15 52 views

Trả lời

8

này làm việc cho MSSQL 2005 +

DECLARE @DropScript varchar(max) 
set @DropScript = '' 

SELECT @DropScript = @DropScript + 'DROP PROCEDURE [' + schema_name(schema_id)+ '].' + '[' + name + '] 
' FROM sys.procedures 
where name like 'somename_%' 


exec (@DropScript) 
+0

Nó hoạt động tuyệt vời! – Kate

+0

Nội dung hay. Có lẽ nó sẽ là một chút neater để sử dụng các chức năng QUOTENAME hơn là nối nhưng vui mừng rằng nó hoạt động! –

0

Con đường tôi luôn có xu hướng làm những loại của sự vật là chỉ trích xuất các thủ tục danh sách từ các bảng hệ thống sử dụng critierion tôi và sau đó tạo ra các danh sách lệnh - hoặc trực tiếp trong sql ví dụ SELECT 'DROP PROCEDURE ' + procName FROM system_procedures_table WHERE procName like... hoặc trong Excel.

1

Bạn có thể tạo DDL bằng cách truy vấn từ điển dữ liệu. Ví dụ, trong Oracle:

SELECT 'DROP PROCEDURE "'||owner||'"."'||object_name||'";' 
FROM all_procedures 
WHERE procedure_name IS NULL 
AND lower(object_name) LIKE 'somename_%'; 
+0

Cảm ơn bạn, nhưng tôi sử dụng MS SQL – Kate

+0

Xin lỗi, tôi nên biết. –

0

Trong MS_Sql-Server bạn cn tạo ra một Tuyên bố với tất cả các thủ tục liên quan đến thả qua (ab) sử dụng "CHO ​​PATH XML ('')" khoản ...

BEGIN TRANSACTION; 
GO 
CREATE PROC Test_1 AS 
BEGIN; 
    PRINT '1' 
END; 
GO 
CREATE PROC Test_2 AS 
BEGIN; 
    PRINT '2' 
END; 
GO 
SELECT * FROM sys.objects WHERE name LIKE 'Test%' AND TYPE = 'P'; 
DECLARE @Stmt NVARCHAR(MAX); 
SET @Stmt = (SELECT 'DROP PROC ' + STUFF (x.Stmt, 1, 2, SPACE(0)) 
       FROM (SELECT ', ' + SCHEMA_NAME(Obj.Schema_ID) + CHAR(46) + Obj.Name 
        FROM sys.objects AS Obj 
        WHERE Obj.name LIKE 'Test%' 
         AND obj.TYPE = 'P' 
        FOR XML PATH ('') 
        ) AS X (Stmt) 
      ); 
SELECT @Stmt; 
EXEC sp_ExecuteSQL @Stmt; 
SELECT * FROM sys.objects WHERE name LIKE 'Test%' AND TYPE = 'P'; 
ROLLBACK; 
0
+0

Lưu ý rằng [câu trả lời chỉ có liên kết] (http://meta.stackoverflow.com/tags/link-only-answers/info) không được khuyến khích, các câu trả lời SO phải là điểm cuối của việc tìm kiếm giải pháp (so với nhưng một điểm dừng khác của tài liệu tham khảo, mà có xu hướng để có được cũ theo thời gian). Vui lòng xem xét thêm bản tóm tắt độc lập tại đây, giữ liên kết dưới dạng tham chiếu. – kleopatra

Các vấn đề liên quan