2011-11-16 23 views

Trả lời

16

1) Mở SQL Server Management Studio 2) Chọn cơ sở dữ liệu của bạn trong Object Explorer 3) Nhấp chuột phải> Nhiệm vụ> Tạo Script

enter image description here

4) Chọn thủ tục chỉ lưu trữ để được kịch bản ra

enter image description here

5) Sau khi trình hướng dẫn qua các bước; trên màn hình tiếp theo, chọn tùy chọn Single file per object và xác định một thư mục nơi để đặt các tập tin:

enter image description here

Với những tùy chọn, bạn sẽ có được một tập tin mỗi thủ tục lưu trữ, được lưu trữ trong thư mục bạn đã chọn.

+0

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

+0

@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 ... –

+1

@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 ** ?? –

3

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.

-2

Bạn có thể sử dụng DB pro (công cụ Visual Studio cho Cơ sở dữ liệu) để thực hiện việc này. Để biết thêm thông tin, hãy kiểm tra điều này - https://www.mssqltips.com/sqlservertip/2971/creating-a-visual-studio-database-project-for-an-existing-sql-server-database/

Chỉnh sửa: Cập nhật liên kết cũ.

+0

Thật không may, liên kết bây giờ đã chết. Câu trả lời chỉ liên kết được khuyến khích vì lý do chính xác đó. Nếu câu trả lời được chỉnh sửa để bao gồm một số nội dung, nó có thể được lưu lại. –

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