Bạn có thể thực hiện việc này trong studio quản lý - Nhấp chuột phải vào cơ sở dữ liệu bạn muốn và chọn tác vụ -> Tạo tập lệnh -> đi qua trình hướng dẫn. Bạn có thể sau đó xác định chỉ được lưu trữ thủ tục, vv
Bạn cũng có thể sử dụng một kịch bản như thế này:
SET NOCOUNT ON
DECLARE @Test TABLE (Id INT IDENTITY(1,1), Code VARCHAR(MAX))
INSERT INTO @Test (Code)
SELECT 'IF object_ID(N''[' + schema_name(schema_id) + '].[' + Name + ']'') IS NOT NULL
DROP PROCEDURE ['+ schema_name(schema_id) +' ].[' + Name + ']' + CHAR(13) + CHAR(10) + 'GO' + CHAR(13) +CHAR(10) +
OBJECT_DEFINITION(OBJECT_ID) + CHAR(13) +CHAR(10) + 'GO' + CHAR(13) + CHAR(10)
FROM sys.procedures
WHERE is_ms_shipped = 0
DECLARE @lnCurrent INT, @lnMax INT
DECLARE @LongName VARCHAR(MAX)
SELECT @lnMax = MAX(Id) FROM @Test
SET @lnCurrent = 1
WHILE @lnCurrent <= @lnMax
BEGIN
SELECT @LongName = Code FROM @Test WHERE Id = @lnCurrent
WHILE @LongName <> ''
BEGIN
PRINT LEFT(@LongName,8000)
SET @LongName = SUBSTRING(@LongName, 8001, LEN(@LongName))
END
SET @lnCurrent = @lnCurrent + 1
END
Bạn cũng có thể shift + click để chọn tất cả các thủ tục lưu trữ và bạn có thể sau đó nhấp chuột phải và kịch bản chúng vào một tập tin.
Nguồn
2011-11-16 06:10:06
Hey tôi muốn 130 tệp riêng biệt cho mỗi SP: (nó chỉ cho tôi một tệp – Neo
@ashuthinks: bất cứ nơi nào bạn thích chúng! Bước qua trình hướng dẫn - nó sẽ hỏi bạn có muốn một tệp cho tất cả các procs được lưu trữ không , hoặc một tập tin cho mỗi proc được lưu trữ, và nó sẽ hỏi bạn nơi để lưu trữ những ... –
@ashuthinks: xem ảnh chụp màn hình thứ ba của tôi - đó là những gì bạn đang tìm kiếm ??? ** Một tệp cho mỗi đối tượng ** ?? –